Android的NDK:没有找到实现本机XXXXXX本机、没有找到、Android、NDK

2023-09-04 23:12:56 作者:╭ァ未成年、欠我个承诺

我做一个项目使用的苔丝二,我想使用的方法 pixConvertRGBToLuminance ,但它总是错误:

 没有找到实现原生LCOM /谷歌code / leptonica /安卓/像素; .nativePixConvertRGBToLuminance:(一)我。
 

ç的Java我的$ C $是:

 公共静态Pix的pixConvertRGBToLuminance(Pix的pixs){
    如果(pixs == NULL)
        抛出新抛出:IllegalArgumentException(源PIX必须为非空);

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

    返回新Pix的(nativePixd);

}
 

我的code的.cpp是:

  jint Java_com_google code_letonica_android_Pix_nativePixConvertRGBToLuminance(JNIEnv的* ENV,
    JCLASS clazz中,jint nativePixs){

PIX * pixs =(PIX *)nativePixs;

LOGE(------------------>无法找到本地pixConvertRGBToLuminance文件);
PIX * pixd = pixConvertRGBToLuminance(pixs);
返回(jint)pixd;
}
 
关于unity3D中Android环境JDK SDK NDK的配置以及编译成Android应用

Leptonica的原来的code是:

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

为什么我总是有错吗?THX。

解决方案

 的externCjint Java_com_google code_letonica_android_Pix_nativePixConvertRGBToLuminance(JNIEnv的* ENV,
    JCLASS clazz中,jint nativePixs){

PIX * pixs =(PIX *)nativePixs;

LOGE(------------------>无法找到本地pixConvertRGBToLuminance文件);
PIX * pixd = pixConvertRGBToLuminance(pixs);
返回(jint)pixd;
}
 

请参照Calling从C ++在Android的Java函数通过JNI

I do a project in using Tess-two, i want to use the method pixConvertRGBToLuminance, but it always the error:

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

My code Java is:

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);

}

My code .cpp is:

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;
}

The original code of Leptonica is :

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

so why I always have the fault?Thx.

解决方案

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;
}

Refer Calling a Java function from C++ on Android over JNI