Proguard выдает ошибки с AWS SDK для Android

В моем приложении для 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

Когда я экспортирую файл apk с включенным Proguard и пустым файлом 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 в этой ситуации!

EDIT: я использую Eclipse.


person TOP    schedule 11.09.2015    source источник


Ответы (2)


Вам не хватает зависимостей, от которых зависит aws android sdk.

Если вы используете gradle, вместо того, чтобы получать банку самостоятельно, вы должны импортировать ее вот так, какая 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 sqs и jackson

person Derek Fung    schedule 11.09.2015
comment
Я использую Эклипс. Вы имеете в виду, что мне нужно найти файлы jar для aws sqs и jackson? Мое приложение нормально работает в режиме отладки. У меня возникли проблемы при экспорте apk. - person TOP; 11.09.2015
comment
Если вы уверены, что эта часть кода не используется вашей программой косвенно, вы также можете добавить -dontwarn com.amazonaws.** в конфигурацию proguard. - person Derek Fung; 11.09.2015
comment
Если вы хотите, чтобы зависимости были полными, вам нужно вручную найти файлы jar в Интернете при использовании Eclipse. - person Derek Fung; 11.09.2015
comment
Спасибо. Теперь я столкнулся с другими проблемами. Я могу экспортировать файл apk. Но когда приложение запускается, я получаю исключение DynamoDbMapper: нет метода, аннотированного интерфейсом com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBHashKey для класса. В моем приложении у меня есть класс, который сопоставлен с таблицей dynamodb. - person TOP; 11.09.2015
comment
Это должен быть совершенно другой вопрос, пожалуйста, начните новый вопрос - person Derek Fung; 11.09.2015

Эти предупреждения связаны с отсутствием ссылок на классы. Способ упаковки SDK может вызывать предупреждения во время выполнения proguard. Однако эти неразрешенные классы не влияют на SDK. Вы можете смело игнорировать их. Вот минимальная настройка proguard для их подавления.

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

См. устранение неполадок Proguard для получения дополнительной информации.

person Yangfan    schedule 11.09.2015
comment
После добавления вашего кода Eclipse позволяет мне экспортировать файл apk. Но он вылетает, когда я запускаю приложение из apk. - person TOP; 11.09.2015
comment
См. измененную конфигурацию proguard. Я предлагаю вам сохранить все классы из SDK. - person Yangfan; 11.09.2015
comment
У меня такая же проблема, и это не сработало для меня. Вышеупомянутое работает для кого-нибудь? - person user1040535; 10.06.2017
comment
nvm, я заработал, следуя этому - person user1040535; 10.06.2017