使用ndk运行android应用程序时出现运行时错误 我试着用C++代码(NDK)运行我的Android应用程序。文件libF.so已生成。应用程序无错误运行,但 获取“不幸已停止”。我用的是try-and-catch,但不是message。我甚至已经清除了C++函数的主体。 我不知道该怎么办,也不知道问题出在哪里

使用ndk运行android应用程序时出现运行时错误 我试着用C++代码(NDK)运行我的Android应用程序。文件libF.so已生成。应用程序无错误运行,但 获取“不幸已停止”。我用的是try-and-catch,但不是message。我甚至已经清除了C++函数的主体。 我不知道该怎么办,也不知道问题出在哪里,android,opencv,android-ndk,Android,Opencv,Android Ndk,我英语不好,请原谅我 我的java代码是: public class main extends Activity { /** Called when the activity is first created. */ static{ System.loadLibrary("F"); } @Override public void onCreate(Bundle savedInstanceState) { super.on

我英语不好,请原谅我

我的java代码是:

public class main extends Activity {
    /** Called when the activity is first created. */

    static{
        System.loadLibrary("F");
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try{
            mainc();

        }catch (Exception e) {
            // TODO: handle exception
            Log.e("lee", e.getMessage());
        }
    }

    private static native void mainc();
}
c++代码(F.cpp):

#包括
#定义JNIIMPORT
#定义JNIEXPORT属性(可见性(“默认”))
#定义JNICALL
使用名称空间std;
JNIEXPORT void JNICALL Java_com_opencv_filter_main_mainc(JNIEnv*jenv,jclass){}

函数必须声明为

extern "C" JNIEXPORT void JNICALL Java_com_opencv_filter_main_mainc(JNIEnv * jenv, jclass);
如果这不能解决问题,请在尝试运行时添加有关在logcat中看到的内容的更多信息。您的包实际上是不是com.opencv.filter.main


你可以在你的<强> LBF上运行。因此找到C++如何精确地修改了<强> MaICE()/St>>函数的名称。< /P>问题不修复,我从Log-CAT,URL=我的包名= COM.opcnv.Futter得到照片。“main”是名称类。以前在android中使用c编程(本机)的名称类似。这里我使用C++编程,在NDK工具链目录中有代码> NM可执行文件。用libF上的

-D
试试。您将看到C++如何修改您的MIPC函数的名称。
extern "C" JNIEXPORT void JNICALL Java_com_opencv_filter_main_mainc(JNIEnv * jenv, jclass);