Gat*_*ito 0 java java-native-interface kotlin
我正在尝试onEventChannel通过 JNI调用C++:
class MainActivity: FlutterActivity(){
companion object {
@JvmStatic
private fun onEventChannel(b: ByteArray): Int {
Log.d(TAG, "onEventChannel");
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我试着(Ljava/lang/byte;)I和(Ljava/lang/ByteArray;)I对onEventChannel,但他们没有工作。
java的签名是ByteArray什么?
(免责声明:我不了解 Flutter,也没有使用过 JNI。)
没有像java.lang.byte*这样的类,也没有java.lang.ByteArray.
在 Kotlin/JVM 上,ByteArray编译成一个简单的原始数组——byte[]在 Java 中会被调用。
并且有 JVM 描述符[B。(您可以通过打印看到这一点ByteArray(0).toString(),它以[B(在@和 哈希码之前)开头。详细信息在JVM 规范中。)
所以我建议尝试[B!
(*有是 java.lang.Byte的,但是这是用于拳击字节的原始包装类)。