android-support-v4.jar在构建路径上,但得到noClassDefFoundError

时间:2013-01-13 15:41:16

标签: android noclassdeffounderror

我有一个使用android-support-v4.jar的应用。这个jar在eclipse的构建路径上。如果我右键单击包并配置构建路径,它将作为库存在。在源代码中,我可以使用它,eclipse知道它是什么,但如果我运行应用程序,我得到这个运行时错误

01-13 15:39:51.838: E/AndroidRuntime(12398): FATAL EXCEPTION: main
01-13 15:39:51.838: E/AndroidRuntime(12398): java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
01-13 15:39:51.838: E/AndroidRuntime(12398):    at com.carefreegroup.NfcscannerActivity.processTagWithGPS(NfcscannerActivity.java:1568)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at com.carefreegroup.NfcscannerActivity.onActivityResult(NfcscannerActivity.java:1742)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.Activity.dispatchActivityResult(Activity.java:4747)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3394)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3448)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.ActivityThread.access$1100(ActivityThread.java:139)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.os.Looper.loop(Looper.java:156)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at android.app.ActivityThread.main(ActivityThread.java:4987)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at java.lang.reflect.Method.invokeNative(Native Method)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at java.lang.reflect.Method.invoke(Method.java:511)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-13 15:39:51.838: E/AndroidRuntime(12398):    at dalvik.system.NativeStart.main(Native Method)

有人有什么想法吗?提前谢谢。

4 个答案:

答案 0 :(得分:4)

  

这个jar在eclipse的构建路径上。

如果你通过手动摆弄构建路径来做到这一点,那就是你难度的来源。将JAR放在项目的libs/中并撤消构建路径更改。 libs/中的所有内容都会自动添加到您的编译构建路径中,并且会打包到您的APK中以便分发到设备。

答案 1 :(得分:4)

将jar文件放在libs /文件夹中,以便它也在项目的工作区中。这就是我一直没有问题的方式。

将.jar拖到libs文件夹,然后在构建路径属性中指向它。

答案 2 :(得分:2)

这个问题困扰了我近六个月,没有任何解决方案可以帮助我,但今天我已经设法找到了正确的解决方案。

当您选择项目目标版本大于或等于Android 4.0时,Android SDK在您的项目“libs”文件夹中包含“android-support-v4.jar”文件。此jar包含与Android相关的所有类和方法4.0或更高版本

你可以看到你的问题,android正试图找到“android-support-v4.jar”中的类定义,这意味着你没有配置“android-support-v4.jar”的构建路径file.为此请执行以下步骤:

1.打开您的项目属性
2.从左侧菜单中选择“Java Build Path” 3.选择“库”选项卡
4.按“添加外部罐子”
5.最重要的步骤: -
选择你的当前项目位置的“libs”文件夹的“android-support-v4”jar文件(路径应该只是你的项目,而不是android sdk)。
6.选择“订购和导出”选项卡,然后选中“android-support-v4.jar”的复选框

就是这样,你做完了!!

答案 3 :(得分:0)

  1. 将android-support-v4.jar放在项目的libs /中
  2. 将wearable-preview-support.jar放在项目的libs /中
  3. 干净的构建,它对我有用。