我有一个测试目标项目A和一个测试项目B.
项目A在其libs文件夹中有FlurryAgent.jar。
项目B在其libs文件夹中有robotium-solo-3.1.jar
当我编译并运行它们时,
cd A
android update project -p .
cd ..
cd B
android update test-project -p . -m ../A
ant all clean debug
ant uninstall
ant installt
ant test
ant test无法执行测试:
test:
[echo] Running tests ...
[exec]
[exec] com.example.r17.test.TestOne:
[exec] INSTRUMENTATION_RESULT: shortMsg=java.lang.NoClassDefFoundError
[exec] INSTRUMENTATION_RESULT: longMsg=java.lang.NoClassDefFoundError: com.flurry.android.FlurryAgent
[exec] INSTRUMENTATION_CODE: 0
我已经阅读了一些在Eclipse中解决此问题的帖子/问题。但我不认为我可以在无头的Jenkins奴隶身上运行Eclipse。
答案 0 :(得分:38)
由于这篇文章是搜索引擎结果中的第一篇,当我输入“java.lang.NoClassDefFoundError:com.flurry.android.FlurryAgent”并且我的问题根本与Ant无关时,我想我会添加一些信息对于那些在重新安装ADT后可能会摸不着头脑的人。
基本上,在Eclipse中,当您在Java Build Path对话框中添加外部库时,不要忘记切换到Order and Export选项卡并在列表中勾选该库的名称。这是必需的,以便在运行时找到库,而不仅仅是在编译时:)
答案 1 :(得分:3)
http://code.google.com/p/android/issues/detail?id=27608
我已将此问题提交给Google,他们上传了一个临时修复程序。该修复程序也将包含在v18版本中。
“项目成员x ... @ android.com,今天(34分钟前) 从http://tools.android.com/download的底部获取anttasks.jar以替换你的sdk中的那个。“
要替换的文件位于\ Android \ android-sdk \ tools \ lib \
答案 2 :(得分:2)
在使用android-junit-report时我花了很长时间来解决同样的问题,但是在“adb logcat”的帮助下,我发现它实际上并没有错过我所包含的检测类,但是它缺少继承的超类。所以我需要把它放回AndroidManifest.xml:
<application>
<uses-library android:name="android.test.runner" />
</application>
答案 3 :(得分:1)
我没有代表评论Qi,但我认为这可能与我的问题有关:
VerifyError in android test-project build tools v17
Xav帮助重新启动并运行,看起来他得到了修复
答案 4 :(得分:0)
我刚刚解决了这个问题&#34; 08-14 08:33:43.398: E / AndroidRuntime(6748):java.lang.NoClassDefFoundError:com.flurry.android.FlurryAgent & #34;
当我想将flurry添加到我的Android应用程序时,我会流动官方网站,它告诉我在Java Build Path对话框中添加一个外部库,然后我也不会忘记切换到订单和导出选项卡并在列表中勾选该库的名称。这是必需的,以便在运行时找到库,不仅在编译时,但是它不起作用直到我从构建路径中删除jar,然后将其复制到lib。完成!!! 强>