android ndk jni没有找到实现错误

时间:2012-05-30 10:05:27

标签: android android-ndk java-native-interface

我正在使用android并尝试在我的应用程序中使用一些本机代码。

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

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):没有找到本地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 个答案:

答案 0 :(得分:11)

由于您的本机文件是.cpp文件,我猜您需要使用extern“C”。 WhyWhy