我在市场上约有70%的设备遭遇此次崩溃。但是在测试过程中它从未出现过。
public class MyApp extends Application{
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
FirebaseAuth.getInstance().signInAnonymously();
}
}
这是错误。
Fatal Exception: java.lang.RuntimeException: Unable to create application com.mycompany.myapp.activities.MyApp: java.lang.ClassCastException: com.google.android.gms.internal.hc cannot be cast to com.google.firebase.auth.c
com.google.android.gms.internal.hc cannot be cast to com.google.firebase.auth.c
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4927)
at android.app.ActivityThread.access$1500(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassCastException: com.google.android.gms.internal.hc cannot be cast to com.google.firebase.auth.c
at com.google.android.gms.internal.aa.a(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.a(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.d(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.z.<init>(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.c(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.b(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.b(Unknown Source)
at com.tesseractmobile.solitairesdk.activities.SolitaireApp.onCreate(SolitaireApp.java:123)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4924)
我正在使用firebase 9.2.1
compile "com.google.firebase:firebase-core:${firebaseVersion}"
compile "com.google.firebase:firebase-database:${firebaseVersion}"
//For dynamic links
compile "com.google.firebase:firebase-invites:${firebaseVersion}"
//Authentication - for logging winning games
compile "com.google.firebase:firebase-auth:${firebaseVersion}"
现在我只是在我们的应用程序中禁用firebase。我们只是测试它,看看它有多稳定。我不知道为什么它在我们所有的测试设备上工作,然后在野外崩溃。
更新 我能够使用Firebase测试实验室获取该问题的视频。它发生在robotest点击广告(广告支持的应用程序)然后回到应用程序时。所以它可能与FirebaseAuth.getInstance()有关.igninInnonymously();被叫两次?但是应该只调用一次Application.onCreate()。我知道Firebase崩溃报告存在一个已知错误,它将导致创建两个Application实例,但我们没有使用该sdk util来解决问题。
答案 0 :(得分:3)
我使用Firebase测试实验室来查找问题。它在他们的一台设备上崩溃了,我看了发生了什么的视频。我们的应用广告支持。我们不会在测试期间点击我们自己的广告,所以这从未出现过。在用户点击广告然后重新进入应用后,就会发生崩溃。我发现的解决方案与此问题相同。 FirebaseApp with name [DEFAULT] doesn't exist
if (!FirebaseApp.getApps(this).isEmpty()){ FirebaseDatabase.getInstance().setPersistenceEnabled(true); FirebaseAuth.getInstance().signInAnonymously(); }
我认为Application.onCreate()不止一次被调用。虽然这不应该发生。
编辑:此答案不起作用
由4人QA团队进行为期一周的测试。在7个测试设备上运行58个单元并使用浓缩咖啡连接测试。然后使用Google Test Lab在数十个云设备上运行多项测试。问题从未发生过。然后在发布日,前半个小时500次崩溃!? 70%的崩溃率。所以回到原点。
最终答案:Proguard问题
我将这两行添加到我的proguard-rules.pro
#Firebase Authentication
-keepattributes Signature
-keepattributes *Annotation*
问题解决了。
答案 1 :(得分:-1)
嗨我有一个类似的问题,经过几天没有解决方案,我发现这是appcompat的版本问题,所以我改变了这个:
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
到此:
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
在app graddle中我的问题解决了,抱歉我的英文
答案 2 :(得分:-1)
更新build.gradle:
// Firebase Gradle
compile "com.google.firebase:firebase-auth:9.4.0"
compile 'com.google.firebase:firebase-storage:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'