2016-08-28 14 views
5

Tôi thấy lỗi sau trong dự án Android của mình sau khi cập nhật lên Gradle Build Tools 2.1.3 và Gradle 2.14.1. Nó xảy ra ngay lập tức khi tôi chạy ứng dụng. Làm thế nào để sửa lỗi này?java.lang.NoClassDefFoundError: Độ phân giải không thành công: Lorg/jacoco/agent/rt/internal_14f7ee5/Ngoại tuyến

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline; 
at com.ourapp.next.conversation.SomeList.SomeListViewModel.$jacocoInit(SomeListViewModel.java) 
at com.ourapp.next.conversation.SomeList.SomeListViewModel.(SomeListViewModel.java) 
at com.ourapp.next.conversation.SomeList.SomeListAdapterTest.(SomeListAdapterTest.java:26) 
at java.lang.reflect.Constructor.newInstance(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) 
at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at org.junit.runners.Suite.runChild(Suite.java:128) 
at org.junit.runners.Suite.runChild(Suite.java:27) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:115) 
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59) 
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_14f7ee5.Offline" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.ourapp.next.debug.test-1/base.apk", zip file "/data/app/com.ourapp.next.debug-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
... 30 more 
Suppressed: java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_14f7ee5.Offline 
at java.lang.Class.classForName(Native Method) 
at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
... 31 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Trả lời

13

Có một báo cáo lỗi đệ: https://code.google.com/p/android/issues/detail?id=220640

này có vẻ là một vấn đề với các phiên bản jacoco. Bạn cần cập nhật jacocoversion của mình thành 0.7.6.201602180812.

Để trích dẫn từ vấn đề:

The jacoco plugin version was bumped from 0.7.4.201502262128 to 0.7.6.201602180812 between 2.1.2 to 2.1.3 which is the likely cause of this issue.

In 2.2 it is 0.7.5.201505241946.

Nó cũng trông giống như một lỗi có thể có thể liên quan đến dịch vụ Google Play. Có những giải pháp tạm thời trong thời gian này.

Tùy chọn 1: Nhận xét ra testCoverageEnabled true.

buildTypes { 
    debug { 
     // testCoverageEnabled true 
    } 
} 

Lựa chọn 2: Sử dụng Run tức thì cũng dường như để giải quyết vấn đề này.

+0

Bật chạy ngay lập tức đã khắc phục sự cố cho tôi, bởi vì tôi không thể thay đổi phiên bản plugin (nó không được liệt kê trong mã nguồn của tôi trực tiếp). –

0

Đối với bất cứ ai phải đối mặt với lỗi này trong khi đang chạy thử nghiệm giao diện người dùng với mã số bảo hiểm jacoco sử dụng createDebugCoverageReport nhiệm vụ

Thêm jar này giải quyết vấn đề này

Missing Jacoco Components Jar

trả lời lấy từ

https://stackoverflow.com/a/42698722/3053781

Tôi đã gặp phải lỗi này trong khi chạy thử nghiệm giao diện người dùng với bảo hiểm trên dự án thư viện android với dự án ứng dụng android mọi thứ đang hoạt động tốt chỉ dự án thư viện Android đang gặp phải vấn đề này

0

Tôi nghĩ rằng tôi đã tìm ra giải pháp tốt nhất cho vấn đề này. Vì lý do nào đó, tệp jaroco-agent.jar không được bao gồm theo mặc định và nó có lớp Offline.class không thể tìm thấy. Bạn chỉ cần thêm phụ thuộc cho tác nhân. Tuy nhiên, hãy chắc chắn rằng đó là phiên bản chính xác giống như phiên bản của plugin jacoco mà bạn đang sử dụng kể từ khi gói kết thúc Offline.class được tìm thấy trong là một băm cam kết. Đây là những gì tôi đang làm:

biên dịch 'org.jacoco: jacoco-maven-plugin: 0.7.9'

biên dịch 'org.jacoco: org.jacoco.agent: 0.7.9: runtime'

Các vấn đề liên quan