Это первый раз, когда я получаю исключение такого типа при создании подписанного APK.Я много искал, но не смог найти никакой полезной информации, чтобы это исправить.
Любая информация мне очень поможет.Потому что я уже провожу много времени, исправляя это.Я также хочу уменьшить размер APK.
Я создаю подписанный APK с настройками выпуска ниже и proguard
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
Proguard:
-dontwarn okhttp3.internal.platform.*
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8
-dontwarn javax.annotation.**
-dontwarn kotlin.Unit
-dontwarn retrofit2.-KotlinExtensions
После созданияПодписав APK, я попытался проверить это и обнаружил, что вход в Google и Facebook не работает (я не использую другие способы входа), а также сбой приложения, когда я открываю Политику конфиденциальности или Условия действия, которые запрашивают конечную точку API с помощью Retrofit 2.
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
Ниже приведен logcat аварии.
2018-12-31 15:24:42.054 15126-15126/com.sathi E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.sathi.c.a.i$a.a()' on a null object reference
at com.sathi.activities.PrivacyPolicyActivity$1.a(Unknown Source)
at com.sathi.c.d$3.a(Unknown Source)
at d.h$a$1$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
2018-12-31 15:24:42.281 15126-15126/com.sathi E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sathi, PID: 15126
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.sathi.c.a.i$a.a()' on a null object reference
at com.sathi.activities.PrivacyPolicyActivity$1.a(Unknown Source)
at com.sathi.c.d$3.a(Unknown Source)
at d.h$a$1$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Я не знаю, что является причиной этого исключения.Любая информация поможет.Заранее спасибо!
Обновление:
Это предупреждение о компиляции Java, которое я получаю при создании подписанного APK-файла без Proguard, но сохраняющего minifyEnabled true
.
Ответ:
Благодаря ответу Реаза Проблема была в классе модели, который я использовал для получения ответа от Retrofit
Я добавил строку ниже в моем Proguard
-keepclassmembers class com.sathi.models.** { *; }