Android 从本机c++;JNI直接
这个问题在很多帖子中都有被问到和回答过,比如 <>但是我如何直接调用C++?为此,我如何获得JNIEnv*和jobject?Android 从本机c++;JNI直接,android,android-ndk,java-native-interface,Android,Android Ndk,Java Native Interface,这个问题在很多帖子中都有被问到和回答过,比如 但是我如何直接调用C++?为此,我如何获得JNIEnv*和jobject? 这可能吗 要获取JNIEnv您可以编写全局JNI_OnLoad函数,该函数将在加载共享库期间被调用。此函数将获取JavaVM指针作为参数。使用它,您可以为当前线程获取JNIEnv(或者如果以前没有JNIEnv,则创建一个新线程) 至于从何处获取jobject——如果这是您正在实例化的新对象,那么您将使用JNIEnv::NewObject方法。否则,您需要将要调用其方法的对象从
这可能吗 要获取
JNIEnv
您可以编写全局JNI_OnLoad
函数,该函数将在加载共享库期间被调用。此函数将获取JavaVM
指针作为参数。使用它,您可以为当前线程获取JNIEnv
(或者如果以前没有JNIEnv
,则创建一个新线程)
至于从何处获取jobject——如果这是您正在实例化的新对象,那么您将使用
JNIEnv::NewObject
方法。否则,您需要将要调用其方法的对象从java端传递到C/C++。您需要阅读。什么共享库?他是直接从C打来的。什么是“直接从C打来”?如果你想在Android上运行你的C代码,那么你必须把C代码放在共享库中——这是唯一官方支持的方式。