Java 的 ByteArray 的签名是什么?
What is the signature for Java's ByteArray?
我正在尝试通过 JNI 通过 C++ 调用 onEventChannel
:
class MainActivity: FlutterActivity(){
companion object {
@JvmStatic
private fun onEventChannel(b: ByteArray): Int {
Log.d(TAG, "onEventChannel");
return 0;
}
}
我为 onEventChannel
尝试了 (Ljava/lang/byte;)I
和 (Ljava/lang/ByteArray;)I
,但其中 none 有效。
java 的 ByteArray
的签名是什么?
(免责声明:我不了解 Flutter,也没有使用过 JNI。)
没有java.lang.byte
*这样的class,也没有java.lang.ByteArray
.
在 Kotlin/JVM 上,ByteArray 编译成一个简单的原始数组 — 在 Java.
中称为 byte[]
并且具有 JVM 描述符 [B
。 (您可以通过打印 ByteArray(0).toString()
看到这一点,它以 [B
开头(在 @
和哈希码之前)。血淋淋的细节在 JVM Spec 中。)
所以我建议尝试 [B
!
(* 是 java.lang.Byte,但这是用于装箱字节的原始包装器 class。)
我正在尝试通过 JNI 通过 C++ 调用 onEventChannel
:
class MainActivity: FlutterActivity(){
companion object {
@JvmStatic
private fun onEventChannel(b: ByteArray): Int {
Log.d(TAG, "onEventChannel");
return 0;
}
}
我为 onEventChannel
尝试了 (Ljava/lang/byte;)I
和 (Ljava/lang/ByteArray;)I
,但其中 none 有效。
java 的 ByteArray
的签名是什么?
(免责声明:我不了解 Flutter,也没有使用过 JNI。)
没有java.lang.byte
*这样的class,也没有java.lang.ByteArray
.
在 Kotlin/JVM 上,ByteArray 编译成一个简单的原始数组 — 在 Java.
中称为byte[]
并且具有 JVM 描述符 [B
。 (您可以通过打印 ByteArray(0).toString()
看到这一点,它以 [B
开头(在 @
和哈希码之前)。血淋淋的细节在 JVM Spec 中。)
所以我建议尝试 [B
!
(* 是 java.lang.Byte,但这是用于装箱字节的原始包装器 class。)