首页 > 解决方案 > JNI 调用未启动 Android 类

问题描述

我正在编写 Aar 库文件,这需要与使用 JNI 调用对该库进行异步调用的 Android APP 链接。这些 JNI 调用需要调用 Class 文件上的相应函数。

Android 异步调用 -> c++ JNI -> 库(aar)

这里的 aar 文件有 JNI 接收和对 Android 类文件的调用。我们需要从 JNI 将上下文传递给 Android 类文件。

控制权将传递给传递上下文和 jenv_obj 的 JNIClass_Initialize()。
从这里找不到课程,因为这个课程没有启动。

如何从 JNI 接口启动 Class 文件。

以下是代码:

得到

int JNIClass_Initialize(
        void *context
        , void *jenv_obj
) { 

//Not able to initiate or invoke Class functions.

  jclass cls = (jniEnvVal.env)->FindClass("ae/info/TestReader");

 //Here it is crashing - As not getting the class 
  jmethodID initFun1= (jniEnvVal.env)->GetStaticMethodID(cls, "Init_func", "(Landroid/content/Context;)I");


  jint retVal = (jniEnvVal.env)->CallStaticIntMethod(cls, initFun1= ,context);
}

public class TestReader{

    Init_func(Context cnt) {
    //Process it
    }
}

谢谢你的帮助。

标签: androidinterfacejava-native-interfacenative

解决方案


推荐阅读