1

В моей Android приложение, которое я хочу работать с Amazon SNSNoClassDefFoundError при создании AmazonSNSClient с помощью AWS SDK для Java

AmazonSNSClient snsClient = new AmazonSNSClient(new ClasspathPropertiesFileCredentialsProvider()); 

Но я получил эту ошибку:

Caused by: java.lang.NoClassDefFoundError: com.amazonaws.services.sns.AmazonSNSClient 

Я использую Eclipse, Luna и установил AWS Инструментарий для Eclipse. В Java Build Path моего проекта я выбрал «Добавить библиотеку» -> «AWS SDK для Java».

Я не знаю, как решить эту проблему. Пожалуйста, помогите мне!

+0

Вы писали инструкцию 'import' для этого пакета и класса? –

+0

@ deepu513 Что значит? Эта строка "import com.amazonaws.services.sns.AmazonSNSClient;" ? Да конечно. – TOP

+0

Ошибка только в этой строке, она не может импортировать SDK. –

ответ

2

AWS имеет SDK специально для Android https://aws.amazon.com/mobile/sdk/.

Руководство по началу работы, в том числе, как настроить в Eclipse (или использовать Android Studio/Maven) доступно по адресу http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/setup.html.

Я также предлагаю не внедрять учетные данные в ваше приложение при его выпуске, так как он очень небезопасен, и любой может декомпилировать ваше приложение и украсть ваши учетные данные. Вместо этого я предлагаю взглянуть на Amazon Cognito для аутентификации (это в руководстве, приведенном выше).

+0

Большое спасибо. Оно работает. Мне нужно создать учетные данные: AWSCredentials awsCredentials = new BasicAWSCredentials (accessKey, secretKey). Должен ли я скрывать accessKey и secretKey и как? – TOP

+1

Вместо использования BasicAWSCredentials используйте CognitoCachingCredentialsProvider. Он требует, чтобы на консоли был создан пул идентификаторов Cognito. Инструкции можно найти здесь https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/setup.html#step-3-get-aws-credentials. Рад, что ты добился прогресса! – WestonE