2017-12-20 15 views
1

ProfileActivityにナビゲートするとアプリケーションが終了します。"java.lang.IllegalArgumentException:ビューはnullであってはいけません"移動するとプログラムが終了する

致命的な例外:メインプロセス:hfad.com.hallofmemesprototype、PID: 19092 java.lang.RuntimeException:活性 ComponentInfo {hfad.com.hallofmemesprototype/hfad.com.hallofmemesprototype.Profile.ProfileActivityを開始できません}:java.lang.IllegalArgumentExceptionが :ビューは

はここで "ProfileActivity" コードのnullであってはなりません。

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); 

} 

}

答えて

0

あなたはfindViewById()を使用して取得しているすべてのビューが本当にactivity_profile.xmlレイアウトに存在することを確認する必要があります。

1つ以上のビューが実際に存在しないため、null値が参照を取得しています。彼らは本当に存在しているにもかかわらず、別のレイアウトではなくactivity_profile.xmlにあなたがあなたの活動にsetContentView()を経由してロードされるため、

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

最初にあなたは、このビューの参照を見つけるために、すべてのエラートラインを取得されていません。

関連する問題