【问题标题】:am getting error after i created amazon coginto in android我在 android 中创建 amazon coginto 后出现错误
【发布时间】:2016-05-30 13:35:00
【问题描述】:

您好,我正在做一个项目,将数据同步到 amazon coginto 并且工作正常,并且也成功签署了 apk。

现在的问题是调试后出现错误

“AWS http 客户端类名 b 的后缀无法识别”

【问题讨论】:

  • 你能提供堆栈跟踪吗?

标签: android amazon-web-services amazon-cognito


【解决方案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.**
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多