android ndk jni Ошибка реализации не найдена

Я работаю с 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 ответ

Решение

Поскольку ваш нативный файл является файлом.cpp, я предполагаю, что вам нужно будет использовать extern "C". Почему и почему

Другие вопросы по тегам