所以我在这里死了..我试着看看其他问题/解决方案和没有似乎帮助我呢...致命异常: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',看起来你并没有“保留”该包中的某些类。 –