从本地c ++ JNI DIRECTLY调用java

时间:2012-06-13 05:34:00

标签: android android-ndk java-native-interface

此问题已在许多帖子中提出并回答,例如this

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

2 个答案:

答案 0 :(得分:1)

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

关于get jobject的位置 - 如果这是您要实例化的新对象,则使用JNIEnv::NewObject方法。否则,您需要将要调用方法的对象从java端传递给C / C ++。

答案 1 :(得分:0)