【问题标题】:Proguard gives errors with AWS SDK for AndroidProguard 使用适用于 Android 的 AWS 开发工具包出现错误
【发布时间】:2015-09-11 02:36:51
【问题描述】:

在我的 Android 应用中,我使用了一些 Amazon 的库:

  • aws-android-sdk-cognito-2.2.2.jar
  • aws-android-sdk-core-2.2.2.jar
  • aws-android-sdk-ddb-2.2.2.jar
  • aws-android-sdk-ddb-mapper-2.2.2.jar
  • aws-android-sdk-sns-2.2.2.jar
  • aws-android-sdk-s3-2.2.2.jar

当我在启用 Proguard 的情况下导出 apk 文件并清空文件 proguard-project.txt 时,出现以下错误:

    [2015-09-11 09:30:32 - MainActivity] Warning: 
    com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.GetQueueAttributesRequest
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.GetQueueAttributesRequest
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.QueueAttributeName
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.QueueAttributeName
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.QueueAttributeName
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.GetQueueAttributesRequest
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.AmazonSQS
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.AmazonSQS
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.GetQueueAttributesResult
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.GetQueueAttributesResult
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.QueueAttributeName
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.SetQueueAttributesRequest
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.model.SetQueueAttributesRequest
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.AmazonSQS
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.AmazonSQS
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.services.sns.util.Topics: can't find referenced class com.amazonaws.services.sqs.AmazonSQS
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$1: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonParser
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonReader: can't find referenced class com.fasterxml.jackson.core.JsonToken
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity] Warning: com.amazonaws.util.json.JacksonFactory$JacksonWriter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
[2015-09-11 09:30:32 - MainActivity]       You should check if you need to specify additional program jars.
[2015-09-11 09:30:32 - MainActivity] Warning: there were 78 unresolved references to classes or interfaces.
[2015-09-11 09:30:32 - MainActivity]          You may need to specify additional library jars (using '-libraryjars').
[2015-09-11 09:30:32 - MainActivity] java.io.IOException: Please correct the above warnings first.
[2015-09-11 09:30:32 - MainActivity]    at proguard.Initializer.execute(Initializer.java:321)
[2015-09-11 09:30:32 - MainActivity]    at proguard.ProGuard.initialize(ProGuard.java:211)
[2015-09-11 09:30:32 - MainActivity]    at proguard.ProGuard.execute(ProGuard.java:86)
[2015-09-11 09:30:32 - MainActivity]    at proguard.ProGuard.main(ProGuard.java:492)

请帮我在这种情况下如何配置 Proguard!

编辑:我使用 Eclipse。

【问题讨论】:

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


    【解决方案1】:

    这些警告是由于缺少类引用。 SDK 的打包方式可能会在 proguard 期间引起警告。但是,这些未解析的类对 SDK 没有影响。您可以放心地忽略它们。这是一个最小的 proguard 配置来抑制它们。

    -keep class com.amazonaws.** { *; }
    -keepnames class com.amazonaws.** { *; }
    -dontwarn com.amazonaws.**
    -dontwarn com.fasterxml.**
    

    更多详情请见Proguard's trouble shooting

    【讨论】:

    • 添加代码后,Eclipse 允许我导出 apk 文件。但是当我从 apk 运行应用程序时它会崩溃。
    • 查看修改后的 proguard 配置。我建议您保留 SDK 中的所有类。
    • 我遇到了同样的问题,这对我不起作用。以上对任何人都有效吗?
    • nvm,我通过关注 this 让它工作了
    【解决方案2】:

    您缺少 aws android sdk 所依赖的依赖项。

    如果你使用 gradle,而不是自己获取 jar,你应该像这样导入它,哪个 gradle 会为你处理传递依赖。像这样:

    compile 'com.amazonaws:aws-android-sdk-core:2.+'
    compile 'com.amazonaws:aws-android-sdk-cognito:2.+'
    compile 'com.amazonaws:aws-android-sdk-s3:2.+'
    compile 'com.amazonaws:aws-android-sdk-ddb:2.+'
    

    AWS 设置指南 http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/setup.html

    如果您使用的是 Eclipse,则必须自己查找库。你错过了aws sqsjackson

    【讨论】:

    • 我使用 Eclipse。你的意思是我必须找到aws sqs和jackson的jar文件吗?我的应用程序在调试中正常工作。我在导出 apk 时遇到问题。
    • 如果你确定这部分代码没有被你的程序间接使用,你也可以将-dontwarn com.amazonaws.**添加到你的proguard配置中。
    • 如果你想要完整的依赖关系,你必须在使用 Eclipse 时手动从 web 中找到 jar 文件。
    • 谢谢。现在我面临另一个问题。我可以导出文件 apk。但是当应用程序运行时,我得到了 DynamoDbMapper 异常:没有使用接口 com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBHashKey 注释类的方法。在我的应用程序中,我有一个与 dynamodb 表映射的类。
    • 这应该是一个完全不同的问题,请开始一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多