Android库项目组织

时间:2013-05-29 18:47:51

标签: android

我有一个依赖于图书馆项目(B)的Android应用程序(A)项目。库项目包含代码以及第三方jar文件和从项目C和D导出的一些其他jar。在Eclipse中,我将项目B指定为库项目。

然而,当我连接我的设备并运行项目A(运行方式 - > Android应用程序)时,它在设备上崩溃,当我检查LogCat输出时,存在一个类的NoClassDefFoundError异常项目C的jar文件。

当我在项目B的bin文件夹中解压缩B.jar文件时,除了带有空MANIFEST.MF文件的META-INF /文件夹之外,它不包含任何其他内容。所以这表明某些地方似乎出了问题,但我无法弄明白。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您是否正在使用最新的ADT插件和SDK修订版?那是转22.x.如果是这样,依赖关系管理发生了重大变化。

可能的解决方案

由于某种原因,Order and Export标签的内容已完全更改,您现在必须从库项目中导出Android Private Libraries。见下面的截图:

enter image description here

更多详情

此更改的棘手部分是您的项目仍在Eclipse中正确编译,因此您不会发现任何问题。直到您在模拟器或设备上部署应用程序,并且在任何库项目调用时都会获得ClassDefNotFoundException

未确认,但我相信这与最近maven支持的变化有关,也与android studio预览有关

过去类似的变化

这让我想起了对版本17的更新中的类似更改,其中lib文件夹突然变为libs,而原始lib文件夹中的所有内容都未打包,因此您在Eclipse中看不到任何问题。仅在设备上安装一次。

this link提供了有关“问题”的更多信息。如果你在stackoverflow上搜索“sdk 17”和“classdefnotfound”,你也会对这个变化有所了解。