【问题标题】:After setting the minifyEnabled as true I'm getting the following error [duplicate]将 minifyEnabled 设置为 true 后,我收到以下错误 [重复]
【发布时间】:2016-12-30 03:22:05
【问题描述】:
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: in.pharmaz.partner, PID: 26775
    java.lang.RuntimeException: Unable to start activity ComponentInfo{in.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 正在混淆某些东西,这导致了这个错误。我不知道我必须写什么规则来避免这种情况。
  • 谢谢!有效。我在 proguard 规则文件中添加了 -keepattributes 签名。

标签: android firebase google-play-services proguard firebase-authentication


【解决方案1】:

当您将minifyEnabled 设置为true 时,这意味着proguard 启动工作。 您需要为每个库和应用程序提供适当的 proguard 配置。

对于 firebase,您可以在 hereofficial docs 中找到配置

还有here is 一个项目,它收集了许多有用的sn-ps 用于proguard 配置。

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多