Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android JNI错误:带有布尔参数的调用函数导致崩溃_Java_Android_C++_Android Ndk_Java Native Interface - Fatal编程技术网

Java Android JNI错误:带有布尔参数的调用函数导致崩溃

Java Android JNI错误:带有布尔参数的调用函数导致崩溃,java,android,c++,android-ndk,java-native-interface,Java,Android,C++,Android Ndk,Java Native Interface,我试图调用这个JAVA函数: public String getPreferredLanguage(boolean withRegion) 使用JNIGetMethodID,但我总是遇到崩溃,我在JNI部分尝试了很多关于函数签名的变体,但似乎没有任何帮助 JNI代码: methodID getPreferredLanguageMethod = env->GetMethodID(languageServiceClass, "getPreferredLanguage", "(Ljava/la

我试图调用这个
JAVA
函数:

public String getPreferredLanguage(boolean withRegion)
使用
JNI
GetMethodID
,但我总是遇到崩溃,我在
JNI
部分尝试了很多关于函数签名的变体,但似乎没有任何帮助

JNI
代码:

methodID getPreferredLanguageMethod = env->GetMethodID(languageServiceClass, "getPreferredLanguage", "(Ljava/lang/Boolean;Z)Ljava/lang/String;");
    if (!getPreferredLanguageMethod) {
        TTLOGD("LanguageService::getPreferredLanguage: ERROR getPreferredLanguageMethod is null\n");
    }
崩溃消息:

JNI DETECTED ERROR IN APPLICATION: JNI CallObjectMethodV called with pending exception java.lang.NoSuchMethodError: no non-static method "Lcom/tabtale/mobile/acs/services/LanguageService;.getPreferredLanguage(Ljava/lang/Boolean;Z)Ljava/lang/String;"
知道我做错了什么吗?

在反复阅读文档之后,我发现了我的问题,这就是
JNI
函数应该是什么:

jmethodID getPreferredLanguageMethod = env->GetMethodID(languageServiceClass, "getPreferredLanguage", "(Z)Ljava/lang/String;");

在生成错误的调用抛出Java异常(在Java端)之前,您对Java的一次调用。在进行任何JNI方法调用之前,您需要允许处理(或自己处理)这个Java异常。请参阅中的Java异常部分:不要试图自己解决这些问题
javap-s
将100%准确地告诉您。@EJP您在上运行
javap
什么?什么目录?@IgorGanapolsky从它的人那里,
javap[options]class…
so
javap-s ClassContainingRelevantMethod.class