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



(这是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

ant测试无法执行测试:

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中解决这个问题的文章/问题。但我不认为我能在没有头的詹金斯奴隶身上运行Eclipse。

由于当我输入"java.lang.NoClassDefFoundError.com.frazz.android.FlurryAgent"时,这篇文章是搜索引擎结果中的第一篇,而我的问题与Ant完全无关,我想我应该为那些在重新安装ADT后可能会挠头的人添加一些信息。

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

http://code.google.com/p/android/issues/detail?id=27608

我向谷歌提交了这个问题,他们上传了一个临时修复程序。该修复程序也将包含在v18版本中。

"项目成员x..@android.com,今天(34分钟前)从的底部获取anttasks.jarhttp://tools.android.com/download以替换sdk中的一个。"

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

在使用android junit报表时,我花了很长时间才解决同样的问题,但在"adb-logcat"的帮助下,我发现它实际上并没有缺少我包含的插入类,而是缺少了它继承的超类。所以我需要把它放回AndroidManifest.xml:

<application>
    <uses-library android:name="android.test.runner" />
</application>

我没有代表评论Qi,但我认为这可能与我在这里的问题有关:

VerifyError在android测试项目构建工具v17 中

Xav在恢复和运行方面发挥了重要作用,看起来他修复了

我也有同样的情况,即使我关注了Levon的帖子,它也不起作用。然后我意识到我需要将FlurryAnalytics.jar复制到我的工作空间中的libs文件夹中才能使其工作。希望这能有所帮助。

我刚刚解决了这个问题"08-14 08:33:43.398:E/AndroidRuntime(6748):java.lang.NoClassDefFoundError.com.frazz.android.FlurryAgent"

当我想在我的android应用程序中添加flush时,我会在官方网站上流动,它会告诉我在Java Build Path对话框中添加一个外部库,然后我也不会忘记切换到Order And Export选项卡,并在列表中勾选该库的名称。这是必要的,这样库就可以在运行时找到,而不仅仅是在编译时。但是,在我从构建路径中删除jar,然后将其复制到lib之前,它是不起作用的。完成

相关内容

  • 没有找到相关文章

最新更新