Wenn minifyEnabled true
in meinem gradle Einstellung erhalte ich eine Nullpointer wenn meine app starten:ProGuard führt zu Nullpointer
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.ae.formulaecalendar/de.ae.formulaecalendar.view.calendar.CalendarActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2444)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2504)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1367)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
at de.ae.formulaecalendar.view.calendar.CalendarActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2397)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2504)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1367)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Während er durch das Lesen Stackoverflow ich einige Einstellungen für die proguard-rules.pro Datei gefunden:
######### KEEP ANDROID SUPPORT V7 AND DESIGN
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
die dieses Problem nicht wirklich gelöst hat (aber eine vorherige NullPointerException).
schließlich der wichtigste Teil meines gradle:
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
Als ich disbale minifyEnabled
Everthing funktioniert gut.
Danke für Ihre Hilfe!
Die Frage ist mir etwas unklar. Behalten die Klassen die Nullzeigerausnahme? Und können Sie bitte den Code von 'CalendarActivity.onCreate()' posten? –
Bitte machen Sie eine [SSCCE] (http://sscce.org/). – m0skit0
@Reaz Murshed: Bevor diese NullPointerException auftrat, gab es eine vorherige, die von ProGuard verursacht wurde und die ich mit den veröffentlichten Proguard-Regeln lösen konnte. Aber diese Regeln helfen nicht mit dieser NullPointerException und ich weiß nicht warum. Tut mir leid, wenn es unklar war. Ich habe das onCreate und das Layout-XML hinzugefügt. – Alexander