gpt4 book ai didi

java - 尝试访问 EXTRA_ADDRESS_BOOK_INDEX 字段时出现 JNI 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:02 28 4
gpt4 key购买 nike

我正在尝试访问 EXTRA_ADDRESS_BOOK_INDEX使用 JNI 的常量:

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {
JNIEnv* env = nullptr;
vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6);
jclass clazz = env->FindClass("android/provider/ContactsContract$Data");
jfieldID fieldID = env->GetStaticFieldID(clazz, "EXTRA_ADDRESS_BOOK_INDEX", "Ljava/lang/String;");
jobject field = env->GetStaticObjectField(clazz, fieldID);
}

GetStaticObjectField 方法因错误而崩溃:

java_vm_ext.cc:534] JNI DETECTED ERROR IN APPLICATION: static jfieldID 0x6fd191b0 not valid for class java.lang.Class<android.provider.ContactsContract$Data>

另一方面,如果我尝试访问 VISIBLE_CONTACTS_ONLY在同一个类上的字段,一切都按预期工作:

jfieldID fieldID = env->GetStaticFieldID(clazz, "VISIBLE_CONTACTS_ONLY", "Ljava/lang/String;");

有什么线索是我可能做错的吗?

最佳答案

所以我尝试解决它并得到相同的错误,然后我搜索了最终类的源代码ContactsContract并发现字段 EXTRA_ADDRESS_BOOK_INDEX 未在嵌套类 Data 中声明,而是在名为 ContactCounts 的嵌套接口(interface)中声明。

所以解决方案是将 "android/provider/ContactsContract$Data" 替换为 "android/provider/ContactsContract$ContactCounts"

关于java - 尝试访问 EXTRA_ADDRESS_BOOK_INDEX 字段时出现 JNI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50524064/

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