所以我在這裏死了..我試着看看其他問題/解決方案和沒有似乎幫助我呢...致命異常:com.google.firebase.database.d:com.myapp.android.c類缺少一個沒有參數的構造函數
所以我已經建立了一個使用Firebase的Android應用程序。直到今天,一切都很好,我已經能夠登錄用戶了。
突然之間(經過一段時間的iOS和Web應用程序工作),我回到我的Android應用程序,發現它的崩潰的推出(當它獲取我的用戶數據,我推斷其發生)
我收到以下堆棧跟蹤,我黯然不能讓的,其中實際的問題是什麼意義..
Fatal Exception: com.google.firebase.database.d: Class com.myapp.android.c is missing a constructor with no arguments
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaz(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaz(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzjs(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaz(Unknown Source)
at com.google.android.gms.internal.zzbqi.zza(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
at com.myapp.android.FirebaseHelper$1.onDataChange(Unknown Source)
at com.google.firebase.database.Query$1.onDataChange(Unknown Source)
at com.google.android.gms.internal.zzbmz.zza(Unknown Source)
at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source)
at com.google.android.gms.internal.zzboc$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
唯一的線索我可以從所有那是at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
,這使我想它的發生在我的代碼..
public void getUserData(final Boolean autoLogin, final Boolean fromGoogleSignIn) {
mDatabase = FirebaseDatabase.getInstance().getReference();
final DatabaseReference userRef = mDatabase.child("users").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() == null) {
// Create User Data
} else {
sharedInstance().currentUser = dataSnapshot.getValue(User.class); // <-- Crashing here??
}
}
};
userRef.addListenerForSingleValueEvent(userListener);
}
下一個最大的謎團是,這只是在我的release
構建發生。 然後,我將debuggable true
的值添加到我的release
構建中,但是當這樣做時,問題不會發生(它不會崩潰)。
因此,我的發佈構建的東西,當它不在調試模式,這是突然造成這個問題......不知道爲什麼。
關於我的User類,這是它自己的類在我的項目..
這是我的Proguard的文件...
-dontwarn com.squareup.okhttp.**
-keepattributes Signature
-keep class com.myapp.android.User { *; }
-keep class com.myapp.android.Vendor { *; }
-keep class com.myapp.android.Response { *; }
-keep class com.myapp.android.Voucher { *; }
-assumenosideeffects class android.util.Log {
public static *** d(...);
}
-dontpreverify
任何想法? 謝謝! :)
您需要編輯proguard文件以不縮小您的代碼。 –
感謝超級快速回復@ cricket_007!我添加了我的progaurd文件到原來的帖子...有沒有在那裏做錯了嗎? – Simon
考慮到錯誤是'com.myapp.android.c',看起來你並沒有「保留」該包中的某些類。 –