잠시 동안 앱을 개발 해왔고 (Android 기기와 에뮬레이터에서 두 가지 테스트를하고 있습니다.ART 단위 테스트가 실패합니다. Dalvik은 정상적으로 작동합니다.
현재 트래비스에 빌드가 설치되어 있고 모든 테스트가 정상적으로 실행 중입니다. 또한 로컬 에뮬레이터를 설치하면 모든 것이 올바르게 실행됩니다. 내 물리적 장치 (Moto X)는 Dalvik에있을 때만 모든 것을 잘 실행합니다. 그게 도움이 경우
11-11 15:28:54.013 6259-6259/org.bspeice.minimalbible E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: org.bspeice.minimalbible, PID: 6259
java.lang.NoClassDefFoundError: org.jdom2.xpath.jaxen.JDOMCoreNavigator
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:305)
at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:88)
at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:39)
at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:50)
at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:47)
at android.test.SimpleCache.get(SimpleCache.java:31)
at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:72)
at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48)
at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61)
at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55)
at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:156)
at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:117)
at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:102)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:366)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4400)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
here 이상 전체 세션 추적이있다 : 최대한 빨리 ART로 전환, 나는 다음과 같은 오류가 발생합니다.
내 질문은 : 이것이 Dalvik이 아닌 ART의 문제 일 수있는 이유가 있습니까? 나는 앱 구축 프로세스를 전혀 변경하지 않았다. 차이를 만드는 유일한 변수는 Dalvik/ART이다. 앱 자체가 정상적으로 실행되며 오류가있는 테스트 만 수행됩니다.
저는 Robolectric를 테스트 용으로 사용하고 에뮬레이터 테스트를 완전히 제거했습니다. 귀하의 설명을 이해할 수 있을지 모르겠습니다 - ART는 Java 런타임에 불과하며 Dalvik과 다른 구문을 사용합니다. 또한 메모리 관리는 클래스를 찾을 수 없다는 데 아무런 영향을 미치지 않습니다. –