2

关于这个问题有很多,但没有一个给出明确的解决方案(真的有那么难吗?)

我正在尝试将一个 jar 添加到我的 Android 项目中。从 r17 开始,Google 说我们应该将 jars 添加到/libs文件夹中,而 Android 工具将负责其余的工作。

我已经包含了一个非常大的库,它运行良好,除了一个类,所以我决定尝试制作自己的 jar。

我创建了一个新的 java 项目,并添加了一个简单的Test类。然后我将它导出为 jar 并手动将 jar 复制到/libs文件夹中。我清理并重建了我的 android 应用程序没有问题,但在运行时,引用 Test 类,我得到以下错误:

java.lang.NoClassDefFoundError: mytestpackage.Test

当我将 jar 的源代码直接包含到我的项目中时,它可以正常工作(当然)。

那么我做错了什么?

4

3 回答 3

1

从 r17 开始,Google 说我们应该将 jars 添加到 /libs 文件夹中,而 Android 工具将负责其余的工作。

正确的。

那么我做错了什么?

如果我不得不猜测,除了将 JAR 复制到 之外libs/,您还在Eclipse 中执行了“添加到构建路径”(根据另一个答案)。这不仅没有必要,而且报告表明这样做会以某种方式抑制将 JAR 从实际打包libs/到 APK 中。如果您确实这样做了,请撤消手动构建路径更改,看看是否有帮助。

于 2013-05-14T20:45:03.503 回答
1

好吧,折腾了一天,我发现我在库项目中将编译器级别设置为1.7,所以当我导出jar时,它导出的编译级别高于android支持的编译级别(1.6) .

于是解决办法,在要导出的jar的项目中: Properties-> Java Compiler-> Enable specific settings-> Compiler compilance level-> 1.6

这为我解决了它,我希望它有用。

于 2013-05-16T20:14:22.740 回答
0

您需要更新您的 .classpath。在 Eclipse 中,标记库(放入 /libs)并Right click->Build Path->Add to build path

于 2013-05-14T19:31:42.063 回答