1

我使用 Firebase androidchat 作为模板为我们的应用程序实现了一个新的聊天功能。一切都很好,没有任何错误,直到我尝试发布版本。

*com.firebase.client.FirebaseException: Failed to bounce to type*

stackoverflow 中有一个类似的问题,但似乎这个人通过更正课堂上的拼写错误来解决它。我没有这些,就像我说的,开发构建没有错误。

这是我的课:

public class Chat {

private String message;
private String author;
private String profilePic;
private Long creationDate;
private Boolean god;

// Required default constructor for Firebase object mapping
@SuppressWarnings("unused")
private Chat() {

}

public Chat(String message, String author, String profilePic, Long creationDate, Boolean god) {
    this.message = message;
    this.author = author;
    this.profilePic = profilePic;
    this.creationDate = creationDate;
    this.god = god;
}

public String getMessage() {
    return message;
}

public String getAuthor() {
    return author;
}

public String getProfilePic() {
    return profilePic;
}

public Long getCreationDate() {
    return creationDate;
}

public Boolean getGod() {
    return god;
}
}

这是它在 Firebase 控制台中的样子 http://quickscreen.me/tpBP.png

如果有帮助,这是完整的错误:http: //paste.plurk.com/show/2102887/

如果我删除“creationDate”,它只会说“Unrecognized field message”,这也是类属性之一。

有没有人尝试过 Firebase Android Chat 的发布版本?

4

3 回答 3

1

确保你没有用 Proguard 混淆你的 Chat 类。我认为 Proguard 是罪魁祸首,因为它通常只在发布模式下运行:

 release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt'
        }

在您的 proguard-project.txt 文件中:

# Basic ProGuard rules for Firebase Android SDK 2.0.0+
-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.**
# avoid on Chat.class
-keep class yourClassPackage.Chat { *; }
于 2015-06-08T11:29:43.717 回答
0

尝试清理您的数据库或特定节点,如果名称正常,这应该可以工作。

于 2015-09-25T14:02:22.877 回答
-1

我花了几天时间终于在你的 gradle 构建文件中确定了罪魁祸首 - minifyEnabled。

buildTypes {
    release {
        minifyEnabled false
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

关掉它,问题就消失了。但随后 apk 增长了 2 倍。我不确定有什么替代方法。

于 2015-02-16T06:35:08.453 回答