关于这个问题有很多问题,但是没有一个问题可以解决这个问题(这真的很难吗?)
我正在尝试将jar添加到我的Android项目中。自17号以来,谷歌表示我们应该将这些罐子添加到/libs
文件夹中,并且andriod工具将负责其余的工作。
我已经包含了一个非常大的库,除了一个类之外它工作得很好,所以我决定尝试制作自己的jar。
我创建了一个新的java项目,并添加了一个简单的Test
类。然后我将其导出为jar并手动将jar复制到/libs
文件夹中。我清理并重建了我的Android应用程序没有问题,但在运行时,引用Test类,我得到以下错误:
java.lang.NoClassDefFoundError:mytestpackage.Test
当我直接将jar的来源包含到我的项目中时,它当然有用。
那么我做错了什么?
答案 0 :(得分:1)
自17号以来,谷歌表示我们应该将这些罐子添加到/ libs文件夹,并且andriod工具将负责其余工作。
正确。
那么我做错了什么?
如果我不得不猜测,除了将JAR复制到libs/
之外,还在Eclipse中执行了“添加到构建路径”(根据其他答案)。这不仅没有必要,而且报告表明这样做会以某种方式抑制实际将JAR从libs/
打包到APK中。如果您确实这样做了,请撤消手动构建路径更改,看看是否有帮助。
答案 1 :(得分:1)
好吧,经过一天的努力,我发现我在库项目中将编译器级别设置为1.7,所以当我导出jar时,导出的编译级别高于android支持的编译级别(1.6)。
所以解决方案,在jar的项目中导出:
Properties
- > Java Compiler
- > Enable specific settings
- > Compiler compilance level
- > 1.6
为我修好了,我希望它有用。
答案 2 :(得分:0)
您需要更新.classpath。在Eclipse中,标记库(放入/ libs)和Right click->Build Path->Add to build path