“java.lang.IllegalArgumentException:view不能为null”程序在导航时关闭

问题描述 投票:1回答:1

每当我导航到ProfileActivity时,应用程序都会关闭。

致命异常:主要进程:hfad.com.hallofmemesprototype,PID:19092 java.lang.RuntimeException:无法启动活动ComponentInfo {hfad.com.hallofmemesprototype / hfad.com.hallofmemesprototype.Profile.ProfileActivity}:java.lang.IllegalArgumentException:视图不能为null

这是“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);

}

}

android-studio imageview
1个回答
0
投票

您必须检查使用findViewById()获得的所有视图是否确实存在于activity_profile.xml布局中。

一个或多个视图确实不存在,并且您有一个空值gettin引用。

 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()在你的Activity中加载。

© www.soinside.com 2019 - 2024. All rights reserved.