不满意LinkError。未找到本地方法-安卓

 2023-01-20    300  

问题描述

我正在使用C ++代码开发Android应用程序.试图使用JNI,但失败了.
MyFirstapp.cpp中的代码

JNIEXPORT jint JNICALL Java_com_example_myfirstapp_CreateApp_findMarkersNative(
        JNIEnv* env, jobject, jlong addrRgba) {
    //clock_t begin = clock();
    Mat& mRgb = *(Mat*) addrRgba;
    Mat mgray(mRgb.rows, mRgb.cols, CV_8UC1);
    cvtColor(mRgb, mgray, CV_RGBA2GRAY, 1); // the working one

    clearVectors();

    findSquares(mgray);
    mergeRectangles();

    processFilteredSquares(mgray);

    drawFilteredSquaresWithoutMarker(mRgb);
    __android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "Candidates %i",candidates.size());
    return clusterBoundaries.size();
//  clock_t end = clock();

//  mgray.release();
}

在Android活动(CreateApp)中,我已经声明了该方法

不满意LinkError。未找到本地方法-安卓

public native int findMarkersNative(long imgAdd);

活动中的包装名称为

package com.example.myfirstapp;

出现logcat的错误

Caused by: java.lang.UnsatisfiedLinkError: Native method not found com.example.myfirstapp.CreateApp.findMarkersNative

推荐答案

您的定义看起来正确.根据几篇类似的帖子,可能是因为C/C ++ name mangling .
尝试围绕您的方法,以

定义此API的位置

extern” c” {}

例如:

extern "C" {
JNIEXPORT jint JNICALL Java_com_example_myfirstapp_CreateApp_findMarkersNative(JNIEnv* env, jobject, jlong addrRgba) 
{
... function code ...
}
}

来源:不令人满意的链接链接错误

以上所述是小编给大家介绍的不满意LinkError。未找到本地方法-安卓,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26119.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。