2017-12-06 9 views
0

をリリースAPK内のデータを取得しません。プロガードのために私はこの答えを試しました https://stackoverflow.com/a/26274623/4819445Firebaseリアルタイムデータベースは、リリースAPK</p> <p>を生成するとき、私は問題があると思わデバイスまたはエミュレーター上でアプリケーションを実行すると、データが完全に取得したが、それは、画像が表示されない[アンドロイド]

しかし、それは動作していません。

これはまた、私proguard_rules.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で表示中

助けてください

+1

ちょっとお手伝いしてください... ps://stackoverflow.com/questions/42664285/encapsulated-getters-refurn-null-from-firebase-database-only-in-release-works-f – Itapox

+0

@Itapox大変ありがとうございます。本当に助けてくれます。 親切にそれを受け入れるために回答を追加してください。 – Leenah

答えて

2

ほとんどの場合、Proguardはこれらのクラスをリリースモードで非表示/削除しているため、Firebaseがそれらをシリアル化/デシリアライズできなくなります。 proguardはこのクラスのメソッドを削除しないように、アノテーション「@Keep」を含めることができます。

例:

... 
@IgnoreExtraProperties 
@Keep 
public class Posto { 
    public String uid; 
    public String nome; 
... 

はbuild.gradleにこの依存関係を含める:詳細は

compile 'com.android.support:support-annotations:25.2.0' 

チェックこれを:https://developer.android.com/studio/build/shrink-code.html

この回答は、私自身の問題に基づいて報告されます解決済みEncapsulated getters refurn null from firebase database only in release. Works fine in debug mode

関連する問題

 関連する問題