好吧,首先,我知道,很多用户在stackoverflow中多次提出这个问题。我研究了所有可能的解决方案,但仍然存在问题。Android库项目“java.lang.NoClassDefFoundError”
问题:
我的IDE:Eclipse的 标准/ SDK
版本:开普勒发布 版本ID:20130614-0229
我有一个Android库项目,称为MB-FW-机器人。在这个项目中属性 - > android - > Is Library - 被选中;
我有另一个项目叫mb-revise-android,它需要使用mb-fw-android。我心中已经尝试:
1)转到MB-修正功能的Android - >属性 - > Android的 - >添加的Android库 - >启动工程中的
结果是:
02-26 12:04:19.960: E/dalvikvm(11678): Could not find class 'ru.tsi.maksbm.android.config.AndroidFilePropsIOProvider', referenced from method ru.tsi.maksbm.android.revise.model.Model.<init>
02-26 12:04:19.976: E/AndroidRuntime(11678): FATAL EXCEPTION: main
02-26 12:04:19.976: E/AndroidRuntime(11678): java.lang.NoClassDefFoundError: ru.tsi.maksbm.android.config.AndroidFilePropsIOProvider
02-26 12:04:19.976: E/AndroidRuntime(11678): at ru.tsi.maksbm.android.revise.model.Model.<init>(Model.java:117)
02-26 12:04:19.976: E/AndroidRuntime(11678): at ru.tsi.maksbm.android.revise.model.Model.createInstance(Model.java:64)
02-26 12:04:19.976: E/AndroidRuntime(11678): at ru.tsi.maksbm.android.revise.ReviseStartActivity.onCreate(ReviseStartActivity.java:70)
...
2)添加android库项目作为一个经典的依赖项目。 MB-修正功能的Android - >属性 - >构建路径 - >项目 - >添加,然后顺序和出口 - >检查MB-FW-Android项目
还是同样的错误
3)取消选中MB-FW- android IsLibrary复选框,并尝试(2)。结果相同
4)取消勾选mb-fw-android IsLibrary复选框,执行它就像.apk,进入/ bin文件夹并找到mb-fw-android.jar。将这个.jar文件粘贴到mb-revise-android“libs”文件夹中,并勾选“订购并导出”Android专用库。
结果相同。我尝试添加android库项目作为.jar,作为传统的依赖项目和属性 - > android->添加android库,标记顺序和导出为检查,如果可能,但仍然无法正常工作。
请帮助我,如果你知道解决方案。 我使用Android SDK Platform-tools 19.0.1和Android SDK Build-tools 19.0.2
谢谢。
哇,我只是找到soluiton。
我们可以看到有一个http://developer.android.com/tools/sdk/eclipse-adt.html#notes东西interestiong约ADT 20.0.0及更高版本:
构建系统
库项目清单文件添加自动合并到包括项目的清单。使用manifestmerger.enabled属性启用此功能。
我试着将“manifestmerger.enabled = true”添加到我的project.properties文件中,并且全部完成。事情是,生成器不会合并我的库项目清单与apk项目清单
您是否尝试将其作为外部库添加? – donfuxx
你是否会说像添加标准外部.jar库一样?我试过了,但结果仍然相同。 – user1059786