Android 工作室虚假 "Cannot resolve corresponding JNI function"
Android Studio spurious "Cannot resolve corresponding JNI function"
Android Studio 显示此错误。这是相关代码的片段:
public class MainActivity extends AppCompatActivity {
...
static native void runTests(String path);
static {
System.loadLibrary("TestLib");
}
}
在第一行中,运行Tests 以红色突出显示,如果将鼠标悬停在它上面,您会看到消息“无法解析对应的 JNI 函数”
明确地说,应用程序 确实 构建并且 运行 很好。只是Android工作室认为这个符号无法解析
好的,我明白了。如果我的函数是使用标准命名约定定义的,例如
extern "C"
JNIEXPORT void JNICALL
Java_com_example_myapplication_MainActivity_runTests(JNIEnv *env, jclass cls, jstring path)
然后 Android Studio 搞定了。
我的问题是我只是将其定义为
static void
runTests(JNIEnv *env, jclass cls, jstring path)
并使用 env->RegisterNatives()
将其 link 变为 Java。 Android Studio 无法解决这个问题。
Android Studio 显示此错误。这是相关代码的片段:
public class MainActivity extends AppCompatActivity {
...
static native void runTests(String path);
static {
System.loadLibrary("TestLib");
}
}
在第一行中,运行Tests 以红色突出显示,如果将鼠标悬停在它上面,您会看到消息“无法解析对应的 JNI 函数”
明确地说,应用程序 确实 构建并且 运行 很好。只是Android工作室认为这个符号无法解析
好的,我明白了。如果我的函数是使用标准命名约定定义的,例如
extern "C"
JNIEXPORT void JNICALL
Java_com_example_myapplication_MainActivity_runTests(JNIEnv *env, jclass cls, jstring path)
然后 Android Studio 搞定了。
我的问题是我只是将其定义为
static void
runTests(JNIEnv *env, jclass cls, jstring path)
并使用 env->RegisterNatives()
将其 link 变为 Java。 Android Studio 无法解决这个问题。