gpt4 book ai didi

java - JNI 为什么不能将jintArray 视为[I 而不是Ljava/lang/Object?

转载 作者:行者123 更新时间:2023-11-28 04:47:22 26 4
gpt4 key购买 nike

我对下面的代码 fragment 很好奇:

jintArray someJIntArray;
jfloatArray someJFloatArray;

// ... put legit values to someJIntArray and someJFloatArray

jclass pairClass = env->FindClass("android/util/Pair");

// #1
jmethodID pairConstructor = env->GetMethodID(pairClass, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");

// #2
jmethodID pairConstructor = env->GetMethodID(pairClass, "<init>", "([I[F)V");

jobject pairObject = env->NewObject(pairClass, pairConstructor, someJIntArray, someJFloatArray);

如果我使用 #1 ,然后我的 JNI 代码运行正常。但是如果我使用 #2然后 Pending exception java.lang.NoSuchMethodError: no non-static method "Landroid/util/Pair;.<init>([I[F)V"发生错误。

我想知道,为什么我不能使用 [I[F对于 jintArrayjfloatArray ?其实我也很好奇为什么Ljava/lang/Object;int 时在此代码段中工作和 float不是 Java 中的对象。

最佳答案

您特别要求它找到不存在的构造函数 Pair(int[], float[])

这不是关于你要传入的值,而是关于形式参数的类型。

关于java - JNI 为什么不能将jintArray 视为[I 而不是Ljava/lang/Object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49003430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com