onStart方法中的NoClassDefFoundError - Android

时间:2012-11-09 05:15:46

标签: java android amazon android-mediaplayer

我正在将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 个答案:

答案 0 :(得分:1)

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

  1. 在项目中创建名为libs的文件夹,并将库放在那里。
  2. 右键点击您的项目>构建路径>添加外部档案
  3. 我希望这会解决您的问题。如果您已经使用添加外部库添加了库,请尝试按照我提到的步骤进行操作。

答案 1 :(得分:0)

NoClassDefFoundError 因为以下原因:

  

如果Java虚拟机或ClassLoader实例尝试加载类的定义(作为普通方法调用的一部分或作为使用新表达式创建新实例的一部分),则抛出该类,并且没有类的定义可以被发现。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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