android - 使用 Twilio 可编程聊天聊天模块启用 Proguard 后无法正常工作
问题描述
我为发布风格启用了 proguard,但之后 Twilio Programmable Chat 停止工作。
我在 Proguard 文件中添加了这个https://github.com/twilio/twilio-chat-demo-android/blob/master/chat-demo-android/proguard-project.txt 。
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
构建.gradle
buildTypes {
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
解决方案
试试这个,proguard-rules.pro
#==============================================
# Proguard rules for use with IP Messaging SDK
#==============================================
-keep class com.twilio.chat.** { *; }
-keepattributes InnerClasses
#-keep interface com.twilio.chat.** { *; }
#-keep enum com.twilio.chat.** { *; }
## Keep native methods
-keepclasseswithmembernames class com.twilio.chat.** {
native <methods>;
}
## Keep callbacks from native
# ?
#======================================
# Local demo application configuration
#======================================
-keepclassmembers class **.R$* {
public static <fields>;
}
## EasyAdapter
-dontwarn uk.co.ribot.easyadapter.**
-keepattributes *Annotation*
-keepclassmembers class * extends uk.co.ribot.easyadapter.ItemViewHolder {
public <init>(...);
}
## Google libraries
-dontwarn android.support.**
-keep class com.google.ads.** { *; }
-keep class com.google.android.gms.** { *; }
-keep class com.google.firebase.** { *; }
-keepattributes Signature
推荐阅读
- javascript - 使用循环创建动态嵌套对象
- azure - 从 VisualStudio 2019 到 Azure VM 的 WebDeploy 错误:ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
- python - 不平衡的学习问题 - 样本外与验证
- sqlite - Sqlite/SQLServer 提供程序差异
- filter - 在单独的列中为每个“匹配值”复制值
- c# - 如果在列“ReportId”(主键)中抛出空值违反非空约束,如何使用 EF PostgreSQL
- elasticsearch - AND 查询嵌套对象
- azure - 通过 Azure APIM 策略获取基本 URL 和带有版本标识符的 URL
- php - 基于动态 PHP 变量的第 n 个子配方
- html - 响应式网页设计 ccs 按钮在桌面视图中工作,但对移动视图没有任何反应