Java的ByteArray的签名是什么?

我正在尝试onEventChannel通过 JNI调用C++:

class MainActivity: FlutterActivity(){
    companion object {
        @JvmStatic
        private fun onEventChannel(b: ByteArray): Int {
            Log.d(TAG, "onEventChannel");
            return 0;
        }
    }

我试着(Ljava/lang/byte;)I(Ljava/lang/ByteArray;)IonEventChannel,但他们没有工作。

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的,但是这是用于拳击字节的原始包装类)。


以上是Java的ByteArray的签名是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>