Android NDK: не реализована нативная версия xxxxxx

Я делаю проект с использованием Tess-два, я хочу использовать метод pixConvertRGBToLuminance, но это всегда ошибка:

No implementation found for native Lcom/googlecode/leptonica/android/Pix;.nativePixConvertRGBToLuminance:(I)I. 

Мой код Java:

public static Pix pixConvertRGBToLuminance(Pix pixs){
    if (pixs == null)
        throw new IllegalArgumentException("Source pix must be non-null");

    int nativePixd = nativePixConvertRGBToLuminance(pixs.getNativePix());

    return new Pix(nativePixd);

}

Мой код.cpp это:

jint Java_com_googlecode_letonica_android_Pix_nativePixConvertRGBToLuminance(JNIEnv *env,
    jclass clazz, jint nativePixs){

PIX *pixs = (PIX *)nativePixs;

LOGE("------------------>Failed to find native pixConvertRGBToLuminance File");
PIX *pixd = pixConvertRGBToLuminance(pixs);
return (jint) pixd;
}

Оригинальный код Лептоники:

PIX * pixConvertRGBToLuminance(PIX *pixs)
{
  return pixConvertRGBToGray(pixs, 0.0, 0.0, 0.0);
}`

так почему я всегда виноват?

2 ответа

extern "C" jint Java_com_googlecode_letonica_android_Pix_nativePixConvertRGBToLuminance(JNIEnv *env,
    jclass clazz, jint nativePixs){

PIX *pixs = (PIX *)nativePixs;

LOGE("------------------>Failed to find native pixConvertRGBToLuminance File");
PIX *pixd = pixConvertRGBToLuminance(pixs);
return (jint) pixd;
}

См. Вызов функции Java из C++ на Android через JNI.

Другой вопрос, где ответ - искажение имени в C++ - объявите вашу функцию как èxtern "C"

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