将 minifyEnabled 设置为 true 后,我收到以下错误 [重复]
Posted
技术标签:
【中文标题】将 minifyEnabled 设置为 true 后,我收到以下错误 [重复]【英文标题】:After setting the minifyEnabled as true I'm getting the following error [duplicate] 【发布时间】:2016-12-30 03:22:05 【问题描述】:E/androidRuntime: FATAL EXCEPTION: main
Process: in.pharmaz.partner, PID: 26775
java.lang.RuntimeException: Unable to start activity ComponentInfoin.pharmaz.partner/in.pharmaz.partner.SplashScreenActivity: java.lang.ClassCastException: com.google.android.gms.internal.zzald cannot be cast to com.google.firebase.auth.UserInfo
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
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.ClassCastException: com.google.android.gms.internal.zzald cannot be cast to com.google.firebase.auth.UserInfo
at com.google.android.gms.internal.zzadh.zzN(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.zza(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.zzOj(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.<init>(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.<init>(Unknown Source)
at com.google.android.gms.internal.zzadg.<init>(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.zzc(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.zzb(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source)
at in.pharmaz.partner.SplashScreenActivity.onCreate(SplashScreenActivity.java:38)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
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)
SplashScreenActivity
第 38 行是:
firebaseAuth = FirebaseAuth.getInstance();
我的 ProGuard 规则包含:
-keep class com.google.** *;
我到处找,一无所获。
我的build.gradle
:
buildTypes
release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
proguardFile 'C:/Users/vikas/Desktop/phzVendor/phzandvendor/app/proguard-rules.pro'
debug
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable true
signingConfig signingConfigs.config
proguardFile 'C:/Users/vikas/Desktop/phzVendor/phzandvendor/app/proguard-rules.pro'
【问题讨论】:
主要异常是 - java.lang.ClassCastException: com.google.android.gms.internal.zzald 无法转换为 com.google.firebase.auth.UserInfo 请发布您的 build.gradle 文件 我知道,但是当 minifyEnabled 为 false 时,它会起作用。我认为 proguard 正在混淆某些东西,这导致了这个错误。我不知道我必须写什么规则来避免这种情况。 是的,见此处相同***.com/questions/38883160/… 谢谢!有效。我在 proguard 规则文件中添加了 -keepattributes 签名。 【参考方案1】:当您将minifyEnabled
设置为true
时,这意味着proguard 启动工作。
您需要为每个库和应用程序提供适当的 proguard 配置。
对于 firebase,您可以在 here 或 official docs 中找到配置
还有here is 一个项目,它收集了许多有用的sn-ps 用于proguard 配置。
【讨论】:
以上是关于将 minifyEnabled 设置为 true 后,我收到以下错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
设置 minifyEnabled 为 true 时无法使用 GSON 解析 json 对象
生成带有 minifyEnabled 设置为 true 的签名 APK 后,firebase UI 输出空白
当我设置 minifyEnabled = true 时,应用程序无法使用 API
NotSerializableException: kotlin.UNINITIALIZED_VALUE 设置 minifyEnabled 后为 true
Android 9 崩溃 minifyEnabled 和 multiDexEnabled
是否添加“ minifyEnabled true”和“ proguard-android-optimize.txt”混淆了sqlite数据库并使其与以前的版本不兼容?