2017-12-20 4 views
1

ProfileActivity로 이동할 때마다 응용 프로그램이 닫힙니다."java.lang.IllegalArgumentException :보기가 null이 아니어야합니다"탐색 할 때 프로그램 닫음

치명적인 예외 : 주요 과정 : hfad.com.hallofmemesprototype, PID : 19,092 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 레이아웃에 존재하는지 확인해야합니다.

하나 이상의보기가 실제로 존재하지 않으며 참조가 null 값이됩니다.

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

처음에 당신은 그들이 정말 다른 레이아웃하지만 당신은 당신의 활동에 setContentView()를 통해로드되는 activity_profile.xml이 아니라 존재하기 때문에이 뷰의 참조를 찾을 오류 노력을 받고 있지 않습니다.

관련 문제