- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 android 的初学者,我写过这样的代码。如果我启用 minifyEnabled = true,则不会触发该特定代码,而且我也不知道如何正确调试(我只能记录)。我该怎么办?
DatabaseReference database = FirebaseDatabase.getInstance().getReference().child("ConversationUser").child(FirebaseAuth.getInstance().getUid());
database.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
ConversationUser conversationUser = dataSnapshot.getValue(ConversationUser.class);
Log.e("Chat", conversationUser.toString());
Log.e("Chat Status", conversationUser.getStatus());
String status = conversationUser.getStatus();
if (status != null && status.toLowerCase().equals("active")) {
//TODO: this never trigger if minifyEnabled = true
retrieveConversation(conversationUser.getId());
EventBus.getDefault().post(new ChatDetailAdapter.ReceiveMessage());
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Log.e("ChatHelper", "onChildChanged");
ConversationUser conversationUser = dataSnapshot.getValue(ConversationUser.class);
if (conversationUser.getStatus().toLowerCase().equals("delete")) {
for(Iterator<Map.Entry<String, Conversation>> it = mainMessage.getConversations().entrySet().iterator(); it.hasNext(); ) {
Map.Entry<String, Conversation> entry = it.next();
if(entry.getKey().equals(conversationUser.getId())) {
it.remove();
}
}
sortConversation();
EventBus.getDefault().post(new ChatDetailAdapter.ReceiveMessage());
}
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
EventBus.getDefault().post(new ChatDetailAdapter.RemoveMessage());
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
EventBus.getDefault().post(new ChatDetailAdapter.ReceiveMessage());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
最佳答案
可能您的模型被混淆了,这就是您的代码无法正常工作的原因。要修复它,您需要将存储所有 FirebaseModels
的文件夹保留在混淆文件中。
# Firebase
-keep class com.myAppPackage.folderWhereYouSaveYourModels.** { *; }
还需要多加几行,可以查看文档:
When using Firebase Realtime Database in your app along with ProGuard you need to consider how your model objects will be serialized and deserialized after obfuscation. If you use DataSnapshot.getValue(Class) or DatabaseReference.setValue(Object) to read and write data you will need to add rules to the proguard-rules.pro file:
# Add this global rule
-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models. Modify to fit the structure
# of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}
希望对您有所帮助!
关于Android minifyEnabled true for firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50676718/
我正在编写一个 android 项目,并尝试编译它以供发布。在我的项目中,我使用了 3rd 方项目,例如 couchbase-lite。 buildTypes { release {
我的 Assets 文件夹中有一个目录,其中包含用于数据库的 json。 assets/database/database_1/locations.json 当使用 minifyEnabled tru
我的 ProGuard 中有这个类。 -keep,allowshrinking class com.MyClass { public ; protected ; public
Unfortunately XX has stopped. 当我启动我的高效应用程序时,当我设置时,我会立即收到此消息 buildTypes { release { minif
大家好,在更改 build.gradle 属性后 minifyEnabled true 我收到以下错误。我读到如果我们使用 minifyEnabled true 那么 The ProGuard too
我的应用程序在 Debug模式下运行良好。不幸的是,在上传到 Google Play 商店后,我发现该应用程序崩溃了。我搜索了几个类似的问题,所有这些问题都建议禁用 Proguard 或检查日志输出。
我是 android 的初学者,我写过这样的代码。如果我启用 minifyEnabled = true,则不会触发该特定代码,而且我也不知道如何正确调试(我只能记录)。我该怎么办? Datab
使用外部库(SumUp)构建APK时出现此错误 Error:Execution failed for task ':app:transformClassesAndResourcesWithProgua
这是我的错误信息: Unexpected error while performing partial evaluation: Class = [org/apache/log4j/ch
在 build.gradle (app) 文件中我们默认有这个, buildTypes { release { minifyEnabled false prog
我无法在调试和 Release模式下使用 minifyEnabled true 运行 apk。我已经引用了下面的链接,但没有一个对我有用。 1. Android- Error:Execution fa
当我在任何变体(调试或发布)中将 minifiyEnabled 设置为 true 时,它会给出以下错误 - Warning:retrofit.appengine.UrlFetchClient: c
调试器不会在任何断点处停止。我尝试清除所有断点并将它们添加回去,但我在控制台中看到调试语句。 根据 this answer ,在你的应用程序模块的 build.gradle 中,为我的构建变体禁用 m
我无法在调试和 Release模式下使用 minifyEnabled true 运行 apk。我已经引用了下面的链接,但没有一个对我有用。 1. Android- Error:Execution fa
我这几天一直有问题。我正在使用 Firebase 云消息传递向我的 Android 应用程序发送通知。当 minifyEnabled=false 时,通知进入 Release模式。然而,当 minif
我试图通过将 minifyEnabled 和 shrinkResources 设置为 true 来缩小我的 apk 大小,但是在启动时我的应用程序崩溃并出现此错误(简短版本): java.lang.C
我有一个 Android 应用程序,我刚刚完成它的开发并准备在 PlayStore 上发布它。但是,为了避免其他人直接反编译它,我想添加 proguard 安全层。 我尝试在将 minifyEnabl
我有一个应用程序在调试时工作正常,但是当我制作发布版本时,在 build.gradle 文件中使用 minifyEnabled true,它似乎无法工作完全没有了: D/SapphirePocket(
这是我第一次使用 Proguard 文件。我开始了一个新项目,这样我就可以了解更多关于 Proguard 文件的信息。 我的问题是当我启用 Proguard 时出了点问题。 Hello world 从
我需要启用混淆器,所以我将 minifyEnabled 设置为 true。但是,在尝试构建发布 APK 时出现以下错误: Error:Execution failed for task ':app:p
我是一名优秀的程序员,十分优秀!