Android 从本机c++;JNI直接

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方法。否则,您需要将要调用其方法的对象从

这个问题在很多帖子中都有被问到和回答过,比如

<>但是我如何直接调用C++?为此,我如何获得JNIEnv*和jobject?
这可能吗

要获取
JNIEnv
您可以编写全局
JNI_OnLoad
函数,该函数将在加载共享库期间被调用。此函数将获取
JavaVM
指针作为参数。使用它,您可以为当前线程获取
JNIEnv
(或者如果以前没有
JNIEnv
,则创建一个新线程)


至于从何处获取jobject——如果这是您正在实例化的新对象,那么您将使用
JNIEnv::NewObject
方法。否则,您需要将要调用其方法的对象从java端传递到C/C++。

您需要阅读。

什么共享库?他是直接从C打来的。什么是“直接从C打来”?如果你想在Android上运行你的C代码,那么你必须把C代码放在共享库中——这是唯一官方支持的方式。