0

我今天一直在处理这个问题,但我仍然找不到任何解决方案。我有一个 App Engine 连接的 Android 项目,它使用 AmazonS3Client 调用 GAE 数据存储(通过端点)和 AWS S3。我已经到了必须将照片文件从相机上传到 S3 并将其各自的元数据上传到 Datastore Entity (Photo.java) 的地步。不幸的是,即使我认为我的代码是正确的,我也无法运行示例,因为有多个文件定义了一个类,这可能是 aws-android-sdk-XXX-debug.jar 和 GAE 客户端之一之间的冲突罐子。

这是我的控制台日志:

[2013-10-06 20:15:15 - Dex Loader] Unable to execute dex: Multiple dex files define     Lorg/codehaus/jackson/Base64Variant;
[2013-10-06 20:15:15 - moodstream_final] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/codehaus/jackson/Base64Variant;    

在这种情况下我能做什么?我不想搞乱从 GAE 导入的默认 jar,而且我不知道从 aws 库导入什么以避免这种冲突。

编辑

我还尝试只导入 aws-android-sdk-XXX-s3.jar 而不是整个调试 jar。该程序现在运行,但是何时创建 AmazonS3Client 我收到以下错误:

10-07 02:07:06.286: E/AndroidRuntime(1917): FATAL EXCEPTION: main
10-07 02:07:06.286: E/AndroidRuntime(1917): java.lang.NoClassDefFoundError: com.amazonaws.services.s3.AmazonS3Client
10-07 02:07:06.286: E/AndroidRuntime(1917):     at com.moodstream.activity.CreatePhotoActivity.<init>(CreatePhotoActivity.java:42)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at java.lang.Class.newInstanceImpl(Native Method)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at java.lang.Class.newInstance(Class.java:1319)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.os.Looper.loop(Looper.java:137)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at android.app.ActivityThread.main(ActivityThread.java:5041)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at java.lang.reflect.Method.invokeNative(Native Method)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at java.lang.reflect.Method.invoke(Method.java:511)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-07 02:07:06.286: E/AndroidRuntime(1917):     at dalvik.system.NativeStart.main(Native Method)

我不明白,因为 AmazonS3Client 也在 s3 jar 中。因此,仍然卡住:S。

4

1 回答 1

0

问题解决了!!我设法修复了从我的 libs 文件夹中删除 jackson-core-asl-1.9.11.jar 的双重文件冲突。

于 2013-10-09T01:56:20.833 回答