Android Question Android Auto - 'NoClassDefFoundError' & 'Duplicate Class' Conflict with core-common

bparent

Member
Licensed User
Longtime User
Hello,

I am trying to create a basic Android Auto app in B4A v13.40. I am using inline Java for the CarAppService.

My app compiles, but it crashes at runtime with a NoClassDefFoundError for androidx.arch.core.executor.ArchTaskExecutor. I know this is in the core-common-2.2.0.jar library.

However, when I add #AdditionalJar: core-common-2.2.0 to my project, I get a Dex merge Error because a class is 'defined multiple times', conflicting with an automatic version.

If I remove the #AdditionalJar line and clean the project, the NoClassDefFoundError comes back.

I am stuck in a loop. How can I correctly reference this required dependency? I have attached a minimal project that shows the error.

I do not have much knowledge about inline java's capabilities and androidx libraries and Android Auto so this may not be possible.

Here is log:

Logger connected to: R5CY13QJVRT
--------- beginning of main
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/arch/core/executor/ArchTaskExecutor;
at androidx.lifecycle.LifecycleRegistry_androidKt.isMainThread(LifecycleRegistry.android.kt:23)
at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.jvm.kt:297)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.jvm.kt:172)
at androidx.car.app.Session.<init>(Session.java:63)
at b4a.gemaahost2.com.autoservicecode$B4AAutoSession.<init>(autoservicecode.java:72)
at b4a.gemaahost2.com.autoservicecode$B4AAutoService.onCreateSession(autoservicecode.java:66)
at androidx.car.app.CarAppService.onCreateSession(CarAppService.java:310)
at androidx.car.app.CarAppBinder.lambda$onAppCreate$0$androidx-car-app-CarAppBinder(CarAppBinder.java:115)
at androidx.car.app.CarAppBinder$$ExternalSyntheticLambda4.dispatch(D8$$SyntheticClass:0)
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$0(RemoteUtils.java:148)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda3.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at anywheresoftware.b4a.Msgbox.waitForMessage(Msgbox.java:248)
at anywheresoftware.b4a.Msgbox.debugWait(Msgbox.java:207)
at anywheresoftware.b4a.debug.Debug.wait(Debug.java:217)
at anywheresoftware.b4a.debug.Debug.StartFromShell(Debug.java:109)
at anywheresoftware.b4a.shell.Shell.start(Shell.java:101)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:105)
at b4a.gemaahost2.com.starter.onCreate(starter.java:34)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:5916)
at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2924)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:273)
at android.os.Looper.loop(Looper.java:363)
at android.app.ActivityThread.main(ActivityThread.java:10060)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: java.lang.ClassNotFoundException: androidx.arch.core.executor.ArchTaskExecutor
... 30 more
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/arch/core/executor/ArchTaskExecutor;
at androidx.lifecycle.LifecycleRegistry_androidKt.isMainThread(LifecycleRegistry.android.kt:23)
at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.jvm.kt:297)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.jvm.kt:172)
at androidx.car.app.Session.<init>(Session.java:63)
at b4a.gemaahost2.com.autoservicecode$B4AAutoSession.<init>(autoservicecode.java:72)
at b4a.gemaahost2.com.autoservicecode$B4AAutoService.onCreateSession(autoservicecode.java:66)
at androidx.car.app.CarAppService.onCreateSession(CarAppService.java:310)
at androidx.car.app.CarAppBinder.lambda$onAppCreate$0$androidx-car-app-CarAppBinder(CarAppBinder.java:115)
at androidx.car.app.CarAppBinder$$ExternalSyntheticLambda4.dispatch(D8$$SyntheticClass:0)
at androidx.car.app.utils.RemoteUtils.lambda$dispatchCallFromHost$0(RemoteUtils.java:148)
at androidx.car.app.utils.RemoteUtils$$ExternalSyntheticLambda3.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at anywheresoftware.b4a.Msgbox.waitForMessage(Msgbox.java:248)
at anywheresoftware.b4a.Msgbox.debugWait(Msgbox.java:207)
at anywheresoftware.b4a.debug.Debug.wait(Debug.java:217)
at anywheresoftware.b4a.debug.Debug.StartFromShell(Debug.java:109)
at anywheresoftware.b4a.shell.Shell.start(Shell.java:101)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:105)
at b4a.gemaahost2.com.starter.onCreate(starter.java:34)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:5916)
at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2924)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:273)
at android.os.Looper.loop(Looper.java:363)
at android.app.ActivityThread.main(ActivityThread.java:10060)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: java.lang.ClassNotFoundException: androidx.arch.core.executor.ArchTaskExecutor
... 30 more
[IDE message - 12:35:09]
An error occurred.
Rapid Debugger failed to connect to process. Please try to run again.

Thanks, Bernie
 

Attachments

  • gemaahost6connectstoAA.zip
    12.7 KB · Views: 2
Top