Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Google Maps API v2时,已签名APK崩溃,未签名APK崩溃_Android_Google Maps_Nullpointerexception_Signed Apk - Fatal编程技术网

Android 使用Google Maps API v2时,已签名APK崩溃,未签名APK崩溃

Android 使用Google Maps API v2时,已签名APK崩溃,未签名APK崩溃,android,google-maps,nullpointerexception,signed-apk,Android,Google Maps,Nullpointerexception,Signed Apk,在我的android应用程序中,我使用Google Maps API v2在中显示带有标记的地图。它适用于本地调试和发布版本。一旦我建立了一个签名的APK应用程序崩溃时,地图应该显示。只有当我在Google云控制台中授权已签名APK的SHA1进行API访问时,它才会崩溃。如果我删除SHA1指纹,然后取消应用程序的授权,我会得到一张空地图,但应用程序不会崩溃 崩溃日志: 2020-09-28 11:03:12.000 32246-32369/? E/AndroidRuntime: FATAL EX

在我的android应用程序中,我使用Google Maps API v2在中显示带有标记的地图。它适用于本地调试和发布版本。一旦我建立了一个签名的APK应用程序崩溃时,地图应该显示。只有当我在Google云控制台中授权已签名APK的SHA1进行API访问时,它才会崩溃。如果我删除SHA1指纹,然后取消应用程序的授权,我会得到一张空地图,但应用程序不会崩溃

崩溃日志:

2020-09-28 11:03:12.000 32246-32369/? E/AndroidRuntime: FATAL EXCEPTION: DefaultPool5
    Process: zz.yyyyyyyyyy.xxxxxxxxxx, PID: 32246
    java.lang.NullPointerException: throw with null exception
        at com.google.android.libraries.maps.lv.zzj.<init>(Unknown Source:9)
        at com.google.android.libraries.maps.lv.zzau.zza(Unknown Source:19)
        at com.google.android.libraries.maps.lv.zze.zzb(:1)
        at com.google.android.libraries.maps.lv.zze.zza(Unknown Source:2)
        at com.google.android.libraries.maps.eq.zzo.zza(Unknown Source:28)
        at com.google.android.libraries.maps.eq.zzc.zza(Unknown Source:11)
        at com.google.android.libraries.maps.fj.zzi.zza(Unknown Source:30)
        at com.google.android.libraries.maps.fj.zzi.zza(Unknown Source:85)
        at com.google.android.libraries.maps.fj.zzd.run(Unknown Source:8)
        at com.google.android.libraries.maps.fv.zzc.run(Unknown Source:4)
        at com.google.android.libraries.maps.fv.zzae.run(Unknown Source:7)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at com.google.android.libraries.maps.fv.zzv.run(Unknown Source:50)
        at java.lang.Thread.run(Thread.java:919)
2020-09-2811:03:12.000 32246-32369/?E/AndroidRuntime:致命异常:DefaultPool5
进程:zz.yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyx,PID:32246
java.lang.NullPointerException:抛出空异常
位于com.google.android.libraries.maps.lv.zzj。(未知来源:9)
在com.google.android.libraries.maps.lv.zzau.zza(未知来源:19)
在com.google.android.libraries.maps.lv.zze.zzb(:1)
在com.google.android.libraries.maps.lv.zze.zza(未知来源:2)
在com.google.android.libraries.maps.eq.zzo.zza(未知来源:28)
在com.google.android.libraries.maps.eq.zzc.zza(未知来源:11)
在com.google.android.libraries.maps.fj.zzi.zza(未知来源:30)
在com.google.android.libraries.maps.fj.zzi.zza(未知来源:85)
访问com.google.android.libraries.maps.fj.zzd.run(未知来源:8)
访问com.google.android.libraries.maps.fv.zzc.run(未知来源:4)
访问com.google.android.libraries.maps.fv.zzae.run(未知来源:7)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
访问com.google.android.libraries.maps.fv.zzv.run(未知来源:50)
运行(Thread.java:919)

解决方案是抑制相关类的proguard混淆:

-optimizations !code/simplification/variable 

-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Fragment 
-keep public class * extends android.support.v4.app.Fragment 

# The Maps API uses custom Parcelables. 
# Use this rule (which is slightly broader than the standard recommended one) 
# to avoid obfuscating them. 

-keepclassmembers class * implements android.os.Parcelable { 
    static *** CREATOR; 
} 

# The Maps API uses serialization. 

-keepclassmembers class * implements java.io.Serializable { 
    static final long serialVersionUID; 
    static final java.io.ObjectStreamField[] serialPersistentFields; 
    private void writeObject(java.io.ObjectOutputStream); 
    private void readObject(java.io.ObjectInputStream); 
    java.lang.Object writeReplace(); 
    java.lang.Object readResolve(); 
} 

奎尔:

你找到解决办法了吗?我也有同样的问题:(添加了下面的解决方案,请尽快尝试,非常感谢,你真的帮我节省了我的应用程序,或者移动到Mapbox XD的数百个小时,我刚刚意识到此修复程序适用于V2,我相信它不适用于V3…:(将继续尝试找到解决方案。顺便说一句,请修复链接,我认为正确的可能是此: