java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_b0d6a23/Offline;

1,699 views
Skip to first unread message

solepa...@gmail.com

unread,
Dec 2, 2016, 9:29:42 AM12/2/16
to JaCoCo and EclEmma Users
I have a library with basic UI components like TextView, EditText etc all in terms of items. When I consume that library to show the items on my main application inside a listview using a custom ArrayAdapter I get the following error.
I DON'T have Jacoco in any of my dependencies (library or the app). I have disabled auto-run as suggested here : http://stackoverflow.com/questions/37152590/java-lang-noclassdeffounderror-failed-resolution-of-lorg-jacoco-agent-rt-inter

I still get the error!!!
This isn't specific to emulator or device launches. It happens on both!

I have created the following repos to help someone debug the issue if they think they can help me with this. This isn't the exact project i am facing the issue in, but it is a good replica of what I am doing in my own project.

Library : https://github.com/solepatch/uielementsexample
Application that consumes the above library and throws the exception : https://github.com/solepatch/myapplicationexample


12-02 19:48:17.663 12920-12920/com.soulpatch.uielementsexample.myapplicationexample E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.soulpatch.uielementsexample.myapplicationexample, PID: 12920
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_b0d6a23/Offline;
at com.soulpatch.uielementsexample.uielementsexample.ListArrayAdapter.$jacocoInit(ListArrayAdapter.java)
at com.soulpatch.uielementsexample.uielementsexample.ListArrayAdapter.<init>(ListArrayAdapter.java)
at com.soulpatch.uielementsexample.myapplicationexample.MainFragment.onCreateView(MainFragment.java:28)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:607)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
at android.app.Activity.performStart(Activity.java:6006)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_b0d6a23.Offline" on path: DexPathList[[zip file "/data/app/com.soulpatch.uielementsexample.myapplicationexample-1/base.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at com.soulpatch.uielementsexample.uielementsexample.ListArrayAdapter.$jacocoInit(ListArrayAdapter.java) 
at com.soulpatch.uielementsexample.uielementsexample.ListArrayAdapter.<init>(ListArrayAdapter.java) 
at com.soulpatch.uielementsexample.myapplicationexample.MainFragment.onCreateView(MainFragment.java:28) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682) 
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388) 
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:607) 
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181) 
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) 
at android.app.Activity.performStart(Activity.java:6006) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Suppressed: java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_b0d6a23.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)
... 25 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

solepa...@gmail.com

unread,
Dec 2, 2016, 9:31:48 AM12/2/16
to JaCoCo and EclEmma Users, solepa...@gmail.com
This issue happens with a simple app launch and NOT with Jacoco or Instrumentation tests or anything to do with tests at all!
run ./gradlew clean install on the library, and run the application in an emulator or device to replicate the issue.
It crashes on launch!

Evgeny Mandrikov

unread,
Dec 2, 2016, 11:32:35 AM12/2/16
to JaCoCo and EclEmma Users, solepa...@gmail.com
Quoting FAQ at http://www.eclemma.org/jacoco/trunk/doc/faq.html - Why do I get an error "ClassNotFoundException: org.jacoco.agent[...]Offline"?
If you use offline instrumentation the instrumented classes get a direct dependency on the JaCoCo runtime. Therefore jacocoagent.jar of the same JaCoCo version must be on the classpath and accessible from by the instrumented classes.
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages