使用ant运行Instrumentation测试时出现NoClassDefFoundError

Qi *_*Fan 7 ant android build.xml

(这是Android SDK工具v17问题.预计在v18中修复)

我有一个测试目标项目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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些在Eclipse中解决这个问题的帖子/问题.但我不认为我可以在无头的Jenkins奴隶上运行Eclipse.

Lev*_*von 38

因为当我输入"java.lang.NoClassDefFoundError:com.flurry.android.FlurryAgent"时,这篇文章是搜索引擎结果中的第一篇,我的问题根本与Ant无关,我想我会为那些人添加一些信息.重新安装ADT后可能会摸不着头脑.

基本上,在Eclipse中,当您在Java Build Path对话框中添加外部库时,不要忘记切换到Order and Export选项卡并在列表中勾选该库的名称.这是必需的,以便在运行时找到库,而不仅仅是在编译时:)


Qi *_*Fan 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 中的 anttasks.jar。”

要替换的文件位于 \Android\android-sdk\tools\lib\