如何从C++/JNI调用Java方法,该方法采用Android Context参数

Dra*_*ara 5 c++ java java-native-interface android

我试图通过Android上的C++/JNI调用Java类.更具体地说,我试图调用此类的构造函数,该构造函数将Android上下文作为参数.如果我的构造函数没有参数,我没有问题成功调用,但是当我将必要的Context作为参数包含在内时,我不知道我的JNI签名应该是什么样的,并且还怀疑这是否可能因为我没有访问该上下文对象.

所以,我的问题是,是否可以调用Java类的构造函数,该类将Android上下文作为其唯一参数?如果是这样,怎么样?如果没有,是否有解决方法,因为我需要上下文来访问某些Android API类.

Bam*_*rza 2

我不相信按照你所说的方式这是可能的。但是,如果不知道类的结构,您始终可以将其创建为带有静态实例的单例,该静态实例在 Activity 启动时实例化,从而该类当时获得所需的上下文。它基本上会坐在那里,直到您准备好从 C++ 调用为止,但实际上可以通过上下文来服务您的请求。