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 无法解决这个问题。