如何从NDK C++调用Java?

问题描述:

我需要在本地C++中调用各种Java函数来做一些事情(加载gfx等),并想知道如何。你们中有人是否知道一些样本或有一些有用的代码片段?如何从NDK C++调用Java?

+1

尝试使用搜索: [http://*.com/questions/5198105/calling-a-java-method-from-c-in-android][1] [1]:http://*.com/questions/5198105/calling-a-java-method-from-c-in-android – Yury 2011-12-22 22:33:43

+0

我使用了搜索,但一定错过了。无论如何,这正是我正在寻找的,它的工作原理,谢谢! – HardCoder 2011-12-23 07:39:30

要从NDK调用Java函数,您必须使用JNI。

一个有用而简单的例子是在以下链接提供:

Invoke Java from C/C++

但我建议你:

  • 创建一个新的Java虚拟机作为上面的例子。相反,您应该使用调用NDK函数时获得的JavaVM *和JNIEnv *。
  • 使用NDK时请小心内存泄漏。