我在 android 中创建 amazon coginto 后出现错误
Posted
技术标签:
【中文标题】我在 android 中创建 amazon coginto 后出现错误【英文标题】:am getting error after i created amazon coginto in android 【发布时间】:2016-05-30 13:35:00 【问题描述】:您好,我正在做一个项目,将数据同步到 amazon coginto 并且工作正常,并且也成功签署了 apk。
现在的问题是调试后出现错误
“AWS http 客户端类名 b 的后缀无法识别”
【问题讨论】:
你能提供堆栈跟踪吗? 【参考方案1】:您可能打开了 Proguard 并混淆了类名。 SDK 根据类名进行反射。没有它,某些功能可能无法正常工作。配置请看指令https://github.com/aws/aws-sdk-android/blob/master/Proguard.md。
【讨论】:
谢谢!不幸的是,这些规则我仍然遇到同样的错误。【参考方案2】:Girdhar G. Patel 的解决方案适用于 aws sdk 版本 1,答案的来源在这里:https://aws.amazon.com/blogs/mobile/using-proguard-with-the-aws-sdk-for-android/
如果您使用的是第二版,则需要不同的 proguard 配置才能使其正常工作: (来源:https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-aws-2.1.5.pro)
# These options are the minimal options for a functioning application
# using Proguard and the AWS SDK 2.1.5 for Android
-keep class org.apache.commons.logging.** *;
-keep class com.amazonaws.org.apache.commons.logging.** *;
-keep class com.amazonaws.services.sqs.QueueUrlHandler *;
-keep class com.amazonaws.javax.xml.transform.sax.* public *;
-keep class com.amazonaws.javax.xml.stream.** *;
-keep class com.amazonaws.services.**.model.*Exception* *;
-keep class com.amazonaws.internal.** *;
-keep class org.codehaus.** *;
-keep class org.joda.time.tz.Provider *;
-keep class org.joda.time.tz.NameProvider *;
-keepattributes Signature,*Annotation*,EnclosingMethod
-keepnames class com.fasterxml.jackson.** *;
-keepnames class com.amazonaws.** *;
-dontwarn com.fasterxml.jackson.databind.**
-dontwarn javax.xml.stream.events.**
-dontwarn org.codehaus.jackson.**
-dontwarn org.apache.commons.logging.impl.**
-dontwarn org.apache.http.conn.scheme.**
-dontwarn org.apache.http.annotation.**
-dontwarn org.ietf.jgss.**
-dontwarn org.joda.convert.**
-dontwarn com.amazonaws.org.joda.convert.**
-dontwarn org.w3c.dom.bootstrap.**
#SDK split into multiple jars so certain classes may be referenced but not used
-dontwarn com.amazonaws.services.s3.**
-dontwarn com.amazonaws.services.sqs.**
-dontnote com.amazonaws.services.sqs.QueueUrlHandler
【讨论】:
【参考方案3】:我也有同样的问题。仅当我在 kitkat 和 JellyBean 设备上运行我的发行版 apk 时才遇到此问题。我在 proguard 文件中添加了以下规则并且它起作用了。
-keep class org.apache.commons.logging.** *;
-keep class com.amazonaws.services.sqs.QueueUrlHandler *;
-keep class com.amazonaws.javax.xml.transform.sax.* public *;
-keep class com.amazonaws.javax.xml.stream.** *;
-keep class com.amazonaws.services.**.model.*Exception* *;
-keep class org.codehaus.** *;
-keepattributes Signature,*Annotation*
-dontwarn javax.xml.stream.events.**
-dontwarn org.codehaus.jackson.**
-dontwarn org.apache.commons.logging.impl.**
-dontwarn org.apache.http.conn.scheme.**
-dontwarn com.amazonaws.util.json.**
-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.**
【讨论】:
以上是关于我在 android 中创建 amazon coginto 后出现错误的主要内容,如果未能解决你的问题,请参考以下文章
带有 facebook 身份验证的 Amazon cognito 身份管理
无法使用 Psycopg2 在 Amazon Redshift 中创建表
生成带有日期和小时的时间序列并在 Amazon Redshift 中创建表
在 Amazon S3 中将在 aws3 存储桶中创建的文件夹设为公共或私有文件夹
我可以在包含 UI 和逻辑/代码的 Android 中创建一个独立的“用户控件”吗?
我在 Flutter 中创建了一个 android 通知 channel_id,但是,将 FCM 发送到该通道不会导致振动或声音