致命异常:com.google.firebase.database.d:Class com.myapp.android.c缺少没有参数的构造函数

致命异常:com.google.firebase.database.d:Class com.myapp.android.c缺少没有参数的构造函数,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,所以我在这里走到了死胡同。。我试图查看其他发布的问题/解决方案,但似乎没有一个能帮助我 所以我用Firebase构建了一个Android应用程序。 直到今天,一切都很好,我已经能够登录用户 突然(在iOS和Web应用程序上工作了一段时间后),我回到我的Android应用程序,发现它在启动时崩溃了(我推断它在获取用户数据时发生了什么) 我得到了以下堆栈跟踪,遗憾的是,我不能很好地理解实际问题在哪里 Fatal Exception: com.google.firebase.database.d: 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)
我能从com.google.firebase.database.DataSnapshot.getValue(未知源代码)的
中得到的唯一线索,让我觉得它发生在我的代码中

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);
}
有什么想法吗?
谢谢!:)

出现问题的原因似乎是,在Proguard混淆了您的类之后,Firebase无法找到要从数据库中获取值的类(使用
dataSnapshot.getValue(YourClass.class);
)。我也有同样的问题,我最终通过添加

-dontobfuscate
proguard-rules.pro的选项。由于某种原因,
-保留
选项对我不起作用


可能有一个解决方案可以让其他类保持模糊,我只是不需要它,所以这对我来说很有效。

你需要编辑proguard文件,以避免缩小你的代码。感谢超级快速回复@cricket\u 007!我把我的progord文件添加到原来的帖子中。。。有什么我做错了吗?考虑到错误已经
com.myapp.android.c
,看来你没有在包中“保留”一些类。
-dontobfuscate