Firebase实时数据库在版本apk[Android]中未检索数据
在设备或模拟器上运行应用程序时,可以完美地检索到数据,但在生成版本apk时,数据不会显示图像 我认为问题是由proguard造成的,所以我尝试了这个答案 但它不起作用 这是我的Firebase实时数据库在版本apk[Android]中未检索数据,android,firebase,android-proguard,Android,Firebase,Android Proguard,在设备或模拟器上运行应用程序时,可以完美地检索到数据,但在生成版本apk时,数据不会显示图像 我认为问题是由proguard造成的,所以我尝试了这个答案 但它不起作用 这是我的proguard\u规则。pro -dontwarn org.w3c.dom.** -dontwarn org.joda.time.** -dontwarn org.shaded.apache.** -dontwarn org.ietf.jgss.** -dontwarn com.firebase.** -dontnot
proguard\u规则。pro
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
-dontwarn com.firebase.**
-dontnote com.firebase.client.core.GaePlatform
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes InnerClasses,EnclosingMethod
-keep class com.images.backgrounds.** { *; }
-keep class com.firebase.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**
-dontwarn javax.annotation.**
#
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
另外,我在模型类中添加了@Keep
我在bulid gradle文件中设置minifyEnabled=true:
release {
useProguard true
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
但是POJO的图像仍然没有在APK中显示
请帮助我最有可能的是,Proguard在发布模式下隐藏/剥离了这些类,使得Firebase无法对它们进行序列化/反序列化。 您可以包含注释“@Keep”,这样proguard将不会删除此类中的任何方法 e、 g: 在build.gradle中包含此依赖项:
compile 'com.android.support:support-annotations:25.2.0'
查看此项了解更多信息:
这个答案基于我自己的问题,在上报告并解决。我遇到了一个类似的问题,我为我的项目构建了一个签名的Apk和应用程序包,这就是我在Kotlin中解决问题的方法。你只需在模型或类中添加以下注释,其中包含firebase凭据,如uid、名称、电子邮件、,照片及其他:
@ignoreextroperties
@保持
有我的完整类和我的模型目录:
@忽略外部属性
@保持
@包裹
类Post(val-uid:String,val-title:String,val-description:String,val-imageUri:String,val-likes:Int,val-timeStamp:Long):
包裹的{
构造函数():此(“,”,“,”,1,-1)
}
注意:虽然谷歌play商店需要应用捆绑包,但我建议您也使用相同的登录sea证书来构建apk。然后在您的手机上本地运行apk,如果一切正常,您可以继续上传您生成的应用程序包。只是想帮助。。。请看@Itapox,非常感谢您真的帮助了我,请添加答案以便接受。
compile 'com.android.support:support-annotations:25.2.0'