3

为了测试我的 Android 应用程序,我正在使用 UI 测试工具Robotium。由于传递的 lib-project 依赖项和 android 构建工具无法处理它们,我已经在构建项目和运行测试方面遇到了许多问题。

请在我的案例中进行介绍,阅读我之前对问题提出的问题以及对解决方案的相应讨论

现在,经过一段时间后,我已经包含了另一个库项目ViewPagerIndicator,我的库项目B依赖于它。因此,我再次被迫应用上面链接中提供的以前的解决方案,以防止 lib-projects 出现该错误,并且我在测试项目的 ant.properties 中添加了以下代码:

android.library.reference.1=../lib-project
android.library.reference.2=../Android-ViewPagerIndicator/library

library.paths=com/mydomain/project/* com/actionbarsherlock/**

正如我所料,构建工作。但是实际上依赖于新库的活动测试用例没有通过,我遇到了java.IllegalAccessError:

test:
     [echo] Running tests...
     [exec] 
     [exec] com.mydomain.project.projectb.test.unittests.EncodeTest:.
     [exec] com.mydomain.project.projectb.test.testcases.ServerCommTest:........
     [exec] com.mydomain.project.projectb.test.testcases.LoginTest:
     [exec] INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalAccessError
     [exec] INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
     [exec] INSTRUMENTATION_CODE: 0

然后我意识到,ViewPagerIndicator 依赖于 Android-Support-v4 包,所以我把它的 jar 放在 test-projects libs 目录中,然后再试一次。这次我遇到了活动类的 java.lang.NoClassDefFoundError :

test:
     [echo] Running tests...
     [exec] 
     [exec] com.mydomain.project.projectb.test.unittests.EncodeTest:.
     [exec] junit.framework.TestSuite$1:
     [exec] Failure in warning:
     [exec] junit.framework.AssertionFailedError: Exception in constructor: testCreateAlbum (java.lang.NoClassDefFoundError: com.mydomain.project.activity.LoginActivity
     [exec]     at com.mydomain.project.test.testcases.ServerCommTest.<init>(ServerCommTest.java:29)
     ...

这里可能是什么问题?如果我根本不应用 ant.properties 文件中的修复程序,我会得到与另一个问题相同的错误...

提前感谢您的帮助!

4

0 回答 0