2

我正在将 Amazon IAP 实施到我的媒体播放器应用程序中。正如亚马逊文档中所说,我已经注册了我的观察员。但是,当我运行项目时,它正在抛出NoClassDefFoundError.

项目中没有编译错误,并且该类在项目中具有正确的包名称。搜索了其他论坛,但无法解决问题。

任何帮助是极大的赞赏!!

11-08 21:02:07.399: E/AndroidRuntime(11667): FATAL EXCEPTION: main
11-08 21:02:07.399: E/AndroidRuntime(11667): java.lang.NoClassDefFoundError: com.songs.mysongs.PlaySongObserver
11-08 21:02:07.399: E/AndroidRuntime(11667):    at com.songs.mysongs.PlaySongActivity.onStart(PlaySongActivity.java:111)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1133)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.Activity.performStart(Activity.java:4639)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1972)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2024)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.ActivityThread.access$600(ActivityThread.java:126)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.os.Looper.loop(Looper.java:137)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at android.app.ActivityThread.main(ActivityThread.java:4479)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at java.lang.reflect.Method.invokeNative(Native Method)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at java.lang.reflect.Method.invoke(Method.java:511)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-08 21:02:07.399: E/AndroidRuntime(11667):    at dalvik.system.NativeStart.main(Native Method)
4

4 回答 4

1

试试这个。如果您使用的是新SDK的,那么在项目中添加库的方式完全不同。

  1. 在您的项目中创建名为 as 的文件夹libs并将您的库放在那里。
  2. 右键单击您的项目>构建路径>添加外部档案

我希望这能解决您的问题。如果您已经使用添加外部库添加了库,请尝试按照我提到的步骤进行操作。

于 2012-11-09T05:52:43.630 回答
0

在我的情况下,清理项目已通过采购观察员解决了 NoClassDefFoundError;我猜.jar 库并不总是自动拾取?

于 2013-11-09T03:02:05.660 回答
0

NoClassDefFoundError因为以下原因:

如果 Java 虚拟机或 ClassLoader 实例尝试加载类的定义(作为正常方法调用的一部分或作为使用 new 表达式创建新实例的一部分)并且找不到类的定义,则抛出此异常。

在您的情况下com.songs.mysongs.PlaySongObserver,JVM 找不到类。因此,您必须检查您的类路径是否设置不正确或者如果您使用的是 IDE(如 Eclipse),则检查该类是否被选择用于运行时。

于 2012-11-09T05:32:21.803 回答
0

添加 jar 后检查它是否要导出到。

于 2012-11-09T05:38:56.047 回答