java.lang.IllegalArgumentException: представление не должно быть нулевым. Программа закрывается при переходе

Приложение закрывается, когда я перехожу к ProfileActivity.

ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: hfad.com.hallofmemesprototype, PID: 19092 java.lang.RuntimeException: невозможно запустить активность ComponentInfo {hfad.com.hallofmemesprototype / hfad.com.hallofmemesprototype.Profile.ProfileActivity}: jgalArception.lang.I представление не должно быть нулевым

Вот код «ProfileActivity».

public class ProfileActivity extends AppCompatActivity {
private static final int ACTIVITY_NUM = 3;

private Context mContext = ProfileActivity.this;

private ProgressBar mProgressBar;
private ImageView profilePhoto;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile);
    setupBottomNavigationView();
    setupToolbar();
    setupActivityWidgets();
    setProfileImage();
}

private void setProfileImage(){
    String imgURL = "www.androidzone.org/wp-content/uploads/2013/02/android-musical2.jpg";
    UniversalImageLoader.setImage( imgURL, profilePhoto, mProgressBar, "https://");
}

private void setupActivityWidgets(){
    mProgressBar = findViewById(R.id.profileProgressBar);
    mProgressBar.setVisibility(View.GONE);
    profilePhoto = findViewById(R.id.profile_photo);
}

private void setupToolbar() {
    Toolbar toolbar = findViewById(R.id.profileToolBar);
    setSupportActionBar(toolbar);

    ImageView profileMenu = findViewById(R.id.profileMenu);
    profileMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(mContext, AccountSettingsActivity.class);
            startActivity(intent);
        }
    });

}

/**
 * BottomNavigationView setup
 */
private void setupBottomNavigationView() {
    BottomNavigationViewEx bottomNavigationViewEx = findViewById(R.id.bottomNavViewBar);
    BottomNavigationViewHelper.bottomNavigationView(bottomNavigationViewEx);
    BottomNavigationViewHelper.enableNavigation(mContext, bottomNavigationViewEx);
    Menu menu = bottomNavigationViewEx.getMenu();
    MenuItem menuItem = menu.getItem(ACTIVITY_NUM);
    menuItem.setChecked(true);

}

}


person Community    schedule 20.12.2017    source источник


Ответы (2)


Вы должны убедиться, что все представления, которые вы используете findViewById(), действительно существуют в activity_profile.xml макете.

Одно или несколько представлений на самом деле не существуют, и у вас есть нулевое значение, полученное по ссылке.

 findViewById(R.id.profileProgressBar);
 findViewById(R.id.profile_photo);
 findViewById(R.id.profileToolBar);
 findViewById(R.id.profileMenu);
 findViewById(R.id.bottomNavViewBar);

изначально вы не получаете никаких ошибок, пытаясь найти ссылки на эти представления, потому что они действительно существуют, но в другом макете, но не в activity_profile.xml, который вы загружаете через setContentView() в своей деятельности.

person Jorgesys    schedule 20.12.2017

Этот тип исключения возникает во время неправильного объявления и инициализации переменной.

Попробуйте это

замените объявление веса и инициализируйте val на var.

Если вам нужно использовать Java

final TextView helloTextView = (TextView)findViewById(R.id.text_view_id);

Для Котлина

val helloTextView = findViewById(R.id.text_view_id) as TextView

вы можете обратиться по этой ссылке для получения дополнительных сведений.

person Lakshman Jodhawat    schedule 17.10.2019