0

我正在为一个项目编写一个 android 应用程序以及一个基于 Web 的界面——它们都依赖于 AWS(SNS、SQS 和 S3)。我为 AWS(SNS、SQS 和 S3)创建了包装类,将其制成 Java 项目,将其导出到 JAR 文件中 - AWSCommons.jar,现在我正在尝试将这个 jar 文件用于 Web 界面和 Android 应用程序对于我的项目。

我确实在我的 AWSCommons 项目中进行的单元测试中测试了我是否能够成功使用 AWS。但是当我尝试运行使用 AWSCommons.jar jar 文件的 android 应用程序时,我得到了这个运行时异常:

FATAL EXCEPTION: main
E/AndroidRuntime(15957): java.lang.NoClassDefFoundError: 
E/AndroidRuntime(15957): java.lang.NoClassDefFoundError: com.amazonaws.auth.BasicAWSCredentials
E/AndroidRuntime(15957):    at com.raasio.communication.messaging.internet.AmazonClientManager.validateCredentialsAndInstantiateClient(AmazonClientManager.java:65)
E/AndroidRuntime(15957):    at com.raasio.communication.messaging.internet.AmazonClientManager.getSnsClient(AmazonClientManager.java:54)
E/AndroidRuntime(15957):    at com.raasio.communication.messaging.internet.AWSProxy.<init>(AWSProxy.java:32)
E/AndroidRuntime(15957):    at com.example.raasio.Raasio.onCreate(Raasio.java:79)
E/AndroidRuntime(15957):    at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime(15957):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/AndroidRuntime(15957):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/AndroidRuntime(15957):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)

此外,这是它在我的 AWSCommons 的 AmazonClientManager.java 的第 65 行读取的内容:

AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);

...并且我已经按预期导入了 BasicAWSCredentails 类。谢谢你的帮助。

4

1 回答 1

1

您可能会遇到与 ADT v22 更改相关的问题。您可能会发现这篇博文有助于纠正您的问题:

使用 ADT v22 在 Eclipse 中运行适用于 Android 的 AWS 开发工具包示例

于 2013-05-28T17:40:42.683 回答