java.lang.IllegalArgumentException: изгледът не трябва да е null Програмата се затваря при навигация

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

ФАТАЛНО ИЗКЛЮЧЕНИЕ: основен процес: hfad.com.hallofmemesprototype, PID: 19092 java.lang.RuntimeException: Не може да се стартира дейност ComponentInfo{hfad.com.hallofmemesprototype/hfad.com.hallofmemesprototype.Profile.ProfileActivity}: java.lang.IllegalArgumentException: изгледът не трябва да е нула

Ето кода "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);

За Kotlin

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

можете да се обърнете към тази връзка за повече подробности

person Lakshman Jodhawat    schedule 17.10.2019