Android NDK JNI没有实现错误

4

我是一名与安卓系统相关的开发者,现在正在尝试将一些原生代码集成到我的应用程序中。

以下是应用程序代码的框架:

package A.B;
/*
import statements
*/

public class C extends Activity{

public void onCreate(...){
    ....
    foo();
    ....
}

public int foo(){
    .....
    data(a, b);
    .....
}

public int data(a, b){
    GetValues(a, b);
}

static{
    System.loadLibrary("baz");
}

public native int GetValues(int[] a, int b);
}

本地方法签名如下:

JNIEXPORT jint JNICALL

Java_A_B_C_GetValues(JNIEnv *env, jobject obj, jintArray arr, jint b){

....

....

} 

当运行logcat时,出现以下信息:W/dalvikvm(799): No implementation found for native LA/B/C;.GetValues ([IJ)I
NDK文档并没有严格提到需要创建头文件,因此我没有头文件。
android.mk文件的内容:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := baz
LOCAL_SRC_FILES := baz.cpp

include $(BUILD_SHARED_LIBRARY)

提前感谢您。

1个回答

11

因为您的源文件是 .cpp 文件,所以我猜您需要使用 extern "C"。 为什么为什么


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接