我正在使用react-native开发一个应用程序。使用./gradlew assembleRelease
生成Apk后,一切正常。但是,当我将apk上传到Google Play商店并进行安装时,它仅是第一次崩溃。并给出以下错误。
Fatal Exception: java.lang.IllegalAccessError
Interface com.google.android.gms.internal.measurement.zzge implemented by class com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver is inaccessible (declaration of 'com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver' appears in base.apk)
java.lang.VMClassLoader.findLoadedClass (VMClassLoader.java)
java.lang.ClassLoader.findLoadedClass (ClassLoader.java:738)
java.lang.ClassLoader.loadClass (ClassLoader.java:363)
java.lang.ClassLoader.loadClass (ClassLoader.java:312)
android.app.AppComponentFactory.instantiateReceiver (AppComponentFactory.java:84)
android.app.ActivityThread.handleReceiver (ActivityThread.java:3482)
android.app.ActivityThread.access$1400 (ActivityThread.java:207)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1759)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loop (Looper.java:193)
android.app.ActivityThread.main (ActivityThread.java:6863)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:537)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)
我尝试过更改proguard-rules.pro
# firebase
-dontwarn com.google.android.gms.**
-keep class com.google.android.gms.** { *; }
-keep class com.google.firebase.** { *; }
-keep class io.invertase.firebase.** { *; }
-dontwarn io.invertase.firebase.**
我也尝试过将此代码添加到AndroidManifest.xml文件中
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"
android:permission="android.permission.INSTALL_PACKAGES"
android:enabled="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
此问题不是直接安装和检查发行版APK来的,而是仅在apk在Play商店上载并首次下载时发生。
我已经尝试了几天了。如果有人帮助我解决这个问题,我将感到非常高兴。
答案 0 :(得分:0)
我终于找到了解决这个问题的方法。这与proguard
规则无关,但是由于使用Firebase和Google库的版本不匹配。检查所有gms
库版本和firebase
库版本,并使用提到的版本一起使用。检出Google库release version和support libraries version。