Skip to content

getDefinedPackage from ClassLoader on LibraryInfo does not exist when running in Android #87

@Daniel8bits

Description

@Daniel8bits

Core module is relying on some packages that does not exist on Android, so when you try to run it, Android complains. In version 0.8 it says specifically that the classloader could not load java.awt.Color, and in version 0.9 it is complaining about getDefinedPackage from classloader that apparently does not exist in Android either.

The following image shows where specifically the error comes from on core (line 46):

Image

The error is happening because getDefinedPackage doesn't exist on Android. For fixing it I suggest isolating any platform specific dependencies in separate modules whatever is happening in LibraryInfo. For example: se-adapter, android-adapter, etc. Though I wonder if osc really needs it for its purpose.

I am using JDK 11 and Android API Version 35.

Stack trace from LogCat:

 E  FATAL EXCEPTION: main
                                                                                                    Process: vtubing.pose.tracker, PID: 5276
                                                                                                    java.lang.NoSuchMethodError: No virtual method getDefinedPackage(Ljava/lang/String;)Ljava/lang/Package; in class Ljava/lang/ClassLoader; or its super classes (declaration of 'java.lang.ClassLoader' appears in /apex/com.android.art/javalib/core-oj.jar)
                                                                                                    	at com.illposed.osc.LibraryInfo.<clinit>(LibraryInfo.java:46)
                                                                                                    	at com.illposed.osc.transport.udp.UDPTransport.<init>(UDPTransport.java:61)
                                                                                                    	at com.illposed.osc.transport.OSCPort.<init>(OSCPort.java:40)
                                                                                                    	at com.illposed.osc.transport.OSCPortOut.<init>(OSCPortOut.java:58)
                                                                                                    	at com.illposed.osc.transport.OSCPortOut.<init>(OSCPortOut.java:67)
                                                                                                    	at com.illposed.osc.transport.OSCPortOut.<init>(OSCPortOut.java:75)
                                                                                                    	at com.illposed.osc.transport.OSCPortOut.<init>(OSCPortOut.java:80)
                                                                                                    	at com.illposed.osc.transport.OSCPortOut.<init>(OSCPortOut.java:90)
                                                                                                    	at vtubing.pose.tracker.io.OSCTestIO.testOSC(OSCTestIO.kt:38)
                                                                                                    	at vtubing.pose.tracker.io.OSCTestIO.access$testOSC(OSCTestIO.kt:13)
                                                                                                    	at vtubing.pose.tracker.io.OSCTestIO$start$1$1.invokeSuspend(OSCTestIO.kt:27)
                                                                                                    	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                    	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
                                                                                                    	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)
                                                                                                    	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
                                                                                                    	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
                                                                                                    	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
                                                                                                    	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
                                                                                                    	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
                                                                                                    	at vtubing.pose.tracker.io.OSCTestIO.start(OSCTestIO.kt:24)
                                                                                                    	at vtubing.pose.tracker.fragment.CameraFragment.onViewCreated$lambda$2(CameraFragment.kt:160)
                                                                                                    	at vtubing.pose.tracker.fragment.CameraFragment.$r8$lambda$aE3BU7OArwJZp0ejt8SdlDpda_U(Unknown Source:0)
                                                                                                    	at vtubing.pose.tracker.fragment.CameraFragment$$ExternalSyntheticLambda3.onClick(D8$$SyntheticClass:0)
                                                                                                    	at android.view.View.performClick(View.java:8047)
                                                                                                    	at android.view.View.performClickInternal(View.java:8024)
                                                                                                    	at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
                                                                                                    	at android.view.View$PerformClick.run(View.java:31890)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                    	at android.os.Looper.loop(Looper.java:319)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8919)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Could it be fixed?

Thanks in advance

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions