我在应用程序中使用过AWS服务并使用dynemo db。
我正在使用以下3种AWS服务。
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请求查询时出现以下错误
错误: "java.lang.IllegalArgumentException: Illegal query expression: No hash key condition is found in the query".
您能帮我解决这个问题吗?
答案 0 :(得分:2)
经过多方努力,我找到了解决方案。发生了一些冲突,我在 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.** {
*;
}
答案 1 :(得分:0)
只需在ProGuard文件上也添加此行
-keep public class com.amazonaws.** { *;}
它不会缩小com.amazonaws
包的整个类,因此,如果它的真正问题是Pro-guard,则您的问题将得到解决。