我维护一个Android应用程序而不使用Eclipse。我没有使用Eclipse。我使用的是ant
和build.xml
以及build.properties
。
我将.jar文件放入libs /目录。我的代码编译只是花花公子。但是当我在模拟器上运行它时,输出APK不包含.jar,所以我得到一个运行时堆栈跟踪:
ERROR/AndroidRuntime(470): java.lang.NoClassDefFoundError: com.google.ads.AdView
我的build.properties
看起来像这样:
jar.libs.dir=libs
libs /目录包含我的.jar文件。
build.xml中需要什么才能将外部.jar文件包含在APK中?
编辑:理论上这个答案应该有效,但它不适合我。它已经过时了吗?是什么赋予了? How to add external jar libraries to an android project from the command line
答案 0 :(得分:4)
我刚刚遇到了类似的问题,并注意到库不应放在“myprojectdir \ lib”中。当我把它们移到“myprojectdir \ libs”时,一切都开始起作用了。
答案 1 :(得分:1)
事实证明我需要将我使用的ant
版本升级到1.8。在编译过程中,我收到了以下错误消息:
警告:尚未在运行时设置引用out.dex.jar.input.ref, 但是在构建文件解析期间发现,试图解决。未来 Ant的版本可能支持在非执行中定义的引用ID 目标
我用Google搜索,发现我需要升级Ant,现在我没有收到此警告,我的应用程序也没有强行关闭。
答案 2 :(得分:0)
build.xml中需要什么才能将外部.jar文件包含在APK?
中
只需将其放入libs/
即可。
我的build.properties看起来像这样:
这条线不应该是必要的。它没有出现在使用JAR文件成功构建的build.properties
文件中。
如果您使用项目的dexdump -f classes.dex
目录中的bin/
,则可以确定com.google.ads.AdView
是否在其中。如果没有,那么构建脚本就会有些奇怪。如果确实如此,那么也许你缺少一个依赖的JAR(虽然在这种情况下我会期望VerifyError
。)
答案 3 :(得分:0)
您使用第三方库,但您似乎没有在其上运行DX。确保不仅由DX工具处理您的代码(我假设Ant会这样做),还要确保您使用的所有第三方库。您可以查看我用来将Web应用程序转换为Android davlik格式的7Bee脚本,因此它也适用于您。您可以在Atjeews页面上找到有关该脚本的更多信息。
答案 4 :(得分:0)
解决方案: