android - Proguard 问题:“java.lang.IllegalArgumentException:非法查询表达式:在查询中找不到哈希键条件”
问题描述
我在我的应用程序中使用了 AWS 服务并使用了 dynemo db。
我正在使用 AWS 的以下 3 项服务。
implementation 'com.amazonaws:aws-android-sdk-core:2.6.15'
implementation 'com.amazonaws:aws-android-sdk-s3:2.6.15'
implementation 'com.amazonaws:aws-android-sdk-ddb-mapper:2.6.15'
一切正常,项目也成功构建。
现在我在我的项目中启用了 proguard,并在 proguard.pro 文件中添加了以下规则。
-keepnames class com.amazonaws.**
-keepnames class com.amazon.**
-keep class com.amazonaws.services..Handler
-dontwarn com.fasterxml.jackson.
-dontwarn org.apache.commons.logging.*
-dontwarn org.apache.http.**
-dontwarn com.amazonaws.http.**
-dontwarn com.amazonaws.metrics.**
但是当我尝试使用 DynamoDBQueryExpression
Error 请求查询时出现以下错误: "java.lang.IllegalArgumentException: Illegal query expression: No hash key condition is found in the query".
你能帮我解决这个问题吗?
解决方案
经过多次努力,我找到了解决方案。存在一些冲突问题,我在proguard-rules.pro文件中添加了以下Realm规则
# Realm
-dontnote io.realm.internal.SyncObjectServerFacade
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class * { *; }
-keep class io.realm.internal.KeepMember
-keep @io.realm.internal.KeepMember class * { @io.realm.internal.KeepMember
*; }
-dontwarn javax.**
-dontwarn io.realm.**
-keep class io.realm.RealmCollection
-keep class io.realm.OrderedRealmCollection
-keepclasseswithmembernames class io.realm.** {
*;
}
推荐阅读
- .net - 在一对一聊天中向租户中的用户发送通知
- azure - 所有 Azure 资源的 RBAC 权限列表
- go - Golang / Google Cloud 错误报告不起作用
- regex - bigquery 中 regexp_replace 结果的条件规则
- c++ - 为什么 CLion 的集成 CMake 找不到已安装的包?
- ldap - 如何在 Junit5 中设置嵌入式 ApacheDS
- html - 无法使用网格 (CSS) 拆分网页文本和图像
- excel-formula - 如果日期介于日期范围之间,我如何查找价格?Excel 2016
- r - 数字矩阵到日期矩阵
- html - 围绕另一个元素旋转一个元素 - css