【问题标题】:NoClassDefFoundError while creating AmazonSNSClient using AWS SDK for Java使用适用于 Java 的 AWS 开发工具包创建 AmazonSNSClient 时出现 NoClassDefFoundError
【发布时间】:2015-08-20 09:16:58
【问题描述】:

在我的 Android 应用中,我想使用 Amazon SNS

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

但是我收到了这个错误:

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

我使用 Eclipse Luna 并安装了 AWS Toolkit for Eclipse。 在我项目的 Java 构建路径中,我选择了“添加库”->“AWS SDK for Java”。

我不知道如何解决这个问题。请帮帮我!

【问题讨论】:

  • 你有没有为那个包和类写过import 声明?
  • @deepu513 你什么意思?这一行“import com.amazonaws.services.sns.AmazonSNSClient;” ?当然可以。
  • 错误仅在该行,无法导入SDK。
  • @deepu513 我不明白这个问题。是什么原因?如何解决?
  • 转到你的项目文件夹,然后搜索“libs”文件夹,它可能在app目录或build目录中,然后将你的jar文件粘贴到那里并重新启动eclipse。

标签: android amazon-web-services amazon-dynamodb noclassdeffounderror amazon-sns


【解决方案1】:

AWS 有一个专门针对 Android 的 SDK https://aws.amazon.com/mobile/sdk/

http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/setup.html 上提供了入门指南,包括如何在 Eclipse 中设置(或使用 Android Studio / Maven)。

我还强烈建议在发布应用程序时不要在应用程序中嵌入凭据,因为它非常不安全,任何人都可以反编译您的应用程序并窃取您的凭据。相反,我建议查看 Amazon Cognito 进行身份验证(在上面链接的指南中)。

【讨论】:

  • 非常感谢。有用。我必须创建一个凭证:AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey)。我应该隐藏 accessKey 和 secretKey 以及如何隐藏?
  • 不使用 BasicAWSCredentials,而是使用 CognitoCachingCredentialsProvider。它要求您在控制台上设置一个 Cognito 身份池。可以在此处找到说明docs.aws.amazon.com/mobile/sdkforandroid/developerguide/…。很高兴你取得进步!
猜你喜欢
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
相关资源
最近更新 更多