2015-10-16 3 views
8

Ich habe mein Projekt vor kurzem auf die Android Support Library 23.1 aktualisiert und dieser Teil meines Codes gibt jetzt einen Fehler.Sie müssen eine nicht null übergeben View

Es funktionierte vor dem Update und kommentieren nur dieser Teil ermöglicht mir, die App in Ordnung zu führen. Was genau ist falsch oder hat sich geändert?

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

Dies ist das Fehlerprotokoll.

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)  

ich eine Navigationsleiste Layout verwende, die eine Navigation view.This Navigationsansicht enthält enthält die Header-Layout, die ich angezeigt werden und wie es der Code stellt sich heraus, die ich verwendet wird, auf Kommentar Bilder für den Header-Layout angezeigt werden Hat sich bei der neuen Bibliotheksaktualisierung etwas geändert?

+0

Überprüfen Sie, und stellen Sie sicher, dass "zurück" und "Profil" nicht null sind. –

+0

überprüfen Sie bitte die Zeile 74 Ihrer mainActivity, da dort der Fehler liegt. – Simon

+0

Der exakt gleiche Code funktioniert vor dem 23.1.0 Update, ich habe ihn auch zurückgesetzt und überprüft. Es scheint, dass es ein Problem mit der App gibt: die Funktion headerLayout der Navigationsansicht findet das Header-Layout nicht mehr. –

Antwort

10

Es scheint, dass ein Problem bezüglich der Navigationsansicht besteht. NavigationView findViewById can't find header view

Der aktuelle Fix/Workaround ist, das Header-Layout zu finden.

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

Sobald dies erledigt ist, können Sie auf jedes Element im Header-Layout wie folgt verweisen.

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