2015-10-16 36 views
8

Niedawno zaktualizowałem swój projekt do biblioteki pomocy technicznej Android 23.1, a ta część kodu generuje teraz błąd.Musisz przekazać wartość nie pustą Wyświetl

To działało przed aktualizacją, a komentowanie tej części pozwala mi uruchomić aplikację. Co dokładnie jest nie tak lub uległo zmianie?

Glide.with(getApplicationContext()) 
      .load(R.drawable.banner) 
      .fitCenter() 
      .override(width, height/2) 
      .diskCacheStrategy(DiskCacheStrategy.RESULT) 
      .into(back); 

    if (picture != null) { 
     Glide.with(getApplicationContext()) 
       .load(picture) 
       .fitCenter() 
       .override(width/2, height/2) 
       .into(profile); 
    } else { 
     Glide.with(getApplicationContext()) 
       .load(R.drawable.profile_p) 
       .fitCenter() 
       .override(width/2, height/2) 
       .into(profile); 
    } 

To jest dziennik błędów.

10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime: FATAL EXCEPTION: main 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime: Process: atsystems.cal, PID: 16313 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{atsystems.cal/atsystems.cal.MainActivity}: java.lang.IllegalArgumentException: You must pass in a non null View 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.access$800(ActivityThread.java:151) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:135) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5254) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime: Caused by: java.lang.IllegalArgumentException: You must pass in a non null View 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:678) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:448) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at atsystems.cal.MainActivity.onCreate(MainActivity.java:74) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.Activity.performCreate(Activity.java:5990) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.access$800(ActivityThread.java:151)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:102)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:135)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5254)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Native Method)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:372)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
10-16 22:41:27.238 16313-16313/atsystems.cal E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  

Używam układ szuflady nawigacji, który zawiera widok view.This nawigacyjne nawigacji zawiera układ nagłówka, które mogę wyświetlać i jak się okazuje kod który ja wykomentowane służy do wyświetlania zdjęć w układzie nagłówka Czy w nowej aktualizacji biblioteki coś się zmieniło?

+0

Sprawdź i upewnij się, że "z powrotem" i "profil" nie mają wartości null. –

+0

proszę sprawdzić linię 74 swojej głównej akcji, ponieważ tam właśnie leży twój błąd. – Simon

+0

Dokładny ten sam kod działa przed aktualizacją 23.1.0, również został zmieniony i sprawdzony. Wygląda na to, że wystąpił problem z aplikacją: funkcja headerLayout w widoku nawigacji nie znajduje już układu nagłówka. –

Odpowiedz

10

Wygląda na to, że istnieje problem związany z widokiem nawigacji. NavigationView findViewById can't find header view

Obecna poprawka/obejście polega na znalezieniu układu nagłówka za pomocą.

final NavigationView mNavigationView = (NavigationView) findViewById(R.id.navigation_view); 
    final View headerLayout = mNavigationView.inflateHeaderView(R.layout.header); 

Po wykonaniu tej czynności można odnieść się do każdego elementu w układzie nagłówka, tak jak to.

final ImageView profile = (ImageView) headerLayout.findViewById(R.id.profile_image);