首页 > 解决方案 > 是否可以从 JNI 函数调用另一个文件中定义的类?

问题描述

在 JNI 类中,我想使用在另一个文件中定义的类。假设我的 JNI 函数是:

#include "myClass.h"

extern "C"
JNIEXPORT void JNICALL Java_vd63_utilitaires_panorama_TraitementVolcans_initialiseVolcansJNI(JNIEnv *env,
                                                                                         jobject instance) {
    myClass r = myClass();
}

“myClass.h”文件如下所示:

class myClass{
    public: int x,y;

    public: myClass();

    public: myClass(int,int);

    public: ~myClass();
}

还有我的“myClass.cpp”文件:

#include "myClass.h"

myClass::myClass(): x(0), y(0) {}

myClass::myClass(int x,int y) : x(x),y(y) {}

myClass::~myClass(){

在编辑器中,我没有错误也没有警告,但是当我尝试制作项目时,它失败并出现以下错误:CMake Error: The following variables are used in this project, but they are set to NOTFOUND. 我的课。

有谁知道我可以如何解决我的问题?

我的 CMakeLists.txt 文件是:

cmake_minimum_required(版本 3.4.1)

add_library( 
    native-lib

    SHARED

    native-lib.cpp)

find_library(
          log-lib

          log )

find_library(
    libjnigraphics-lib

    jnigraphics )

target_link_libraries(
    native-lib

    ${log-lib})

target_link_libraries(
    native-lib

    ${libjnigraphics-lib} )

标签: androidc++

解决方案


推荐阅读