hoijui / JavaOSC

OSC content format/"protocol" library for JVM languages
http://www.illposed.com/software/javaosc.html
BSD 3-Clause "New" or "Revised" License
156 stars 43 forks source link

Cannot receive OSC on android API 32 #75

Open ImLvna opened 5 hours ago

ImLvna commented 5 hours ago
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.LibraryInfo.hasStandardProtocolFamily(LibraryInfo.java:283)
                                                                                                        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.OSCPortIn.<init>(OSCPortIn.java:108)
                                                                                                        at com.illposed.osc.transport.OSCPortIn.<init>(OSCPortIn.java:123)
                                                                                                        at com.illposed.osc.transport.OSCPortIn.<init>(OSCPortIn.java:132)
                                                                                                        at com.illposed.osc.transport.OSCPortIn.<init>(OSCPortIn.java:145)
                                                                                                        at com.illposed.osc.transport.OSCPortIn.<init>(OSCPortIn.java:160)
                                                                                                        at com.illposed.osc.transport.OSCPortIn.<init>(OSCPortIn.java:170)```

here is the code it is running in: ```kt
package gay.lilyy.lilypad.core.osc

import com.illposed.osc.MessageSelector
import com.illposed.osc.OSCMessageEvent
import com.illposed.osc.OSCMessageListener
import com.illposed.osc.transport.OSCPortIn
import gay.lilyy.lilypad.core.modules.CoreModules
import gay.lilyy.lilypad.core.modules.Modules
import io.github.aakira.napier.Napier

object OSCReceiver {
    var receiver: OSCPortIn? = null

    val listeners: MutableList<Pair<MessageSelector, OSCMessageListener>> = mutableListOf()
    fun updateAddress() {
        if (CoreModules.Core.config!!.logs.debug) Napier.d("Updating OSC receiver address to ${CoreModules.Core.config!!.listen}")
        receiver?.close()
        receiver = OSCPortIn(CoreModules.Core.config!!.listen)
        for ((selector, listener) in listeners) {
            receiver?.dispatcher?.addListener(selector, listener)
        }
        receiver?.startListening()
    }

    init {
        updateAddress()
        addListener({ true }) {
            if (CoreModules.Core.config!!.logs.incomingData) Napier.d("Received message: ${it.message.address} ${it.message.arguments.joinToString()}")
        }
    }

    fun addListener(matches: (OSCMessageEvent) -> Boolean, listener: OSCMessageListener) {
        val selector = object : MessageSelector {
            override fun isInfoRequired(): Boolean = false

            override fun matches(event: OSCMessageEvent): Boolean {
                return matches(event)
            }
        }
        listeners += selector to listener
        receiver?.dispatcher?.addListener(selector, listener)
    }
}

i am attempting to run this on a Meta Quest 3

ImLvna commented 4 hours ago

temporary fix is downgrading to 0.8, as the problem code was introduced in https://github.com/hoijui/JavaOSC/commit/2cbbc433a354fc0ba326b44826e1ae2b0a7f8350