QAndroidJniEnvironment 提供对 JNI 环境的访问。 更多...
头: | #include <QAndroidJniEnvironment> |
qmake: | QT += androidextras |
Since: | Qt 5.2 |
该类在 Qt 5.2 引入。
QAndroidJniEnvironment () | |
~QAndroidJniEnvironment () | |
jclass | findClass (const char * className ) |
JNIEnv * | operator JNIEnv * () const |
JNIEnv * | operator-> () |
JavaVM * | javaVM () |
构造新的 QAndroidJniEnvironment 对象并将当前线程附加到 Java VM。
bool exceptionCheck() { /* The QAndroidJniEnvironment attaches the current thread to the JavaVM on creation and detach when it goes out of scope. */ QAndroidJniEnvironment qjniEnv; return qjniEnv->ExceptionCheck(); }
分离当前线程从 Java VM 和销毁 QAndroidJniEnvironment 对象。
搜索 className using all available class loaders. Qt on Android uses a custom class loader to load all the .jar files and it must be used to find any classes that are created by that class loader because these classes are not visible in the default class loader.
返回类指针或 null 若没有找到。
A use case for this function is searching for a custom class then calling its memeber method. The following code snippet create an instance of the class
CustomClass
and then calls
printFromJava()
方法:
QAndroidJniEnvironment env; jclass javaClass = env.findClass("org/qtproject/example/qtandroidextras/CustomClass"); QAndroidJniObject classObject(javaClass); QAndroidJniObject javaMessage = QAndroidJniObject::fromString("findClass example"); classObject.callMethod<void>("printFromJava", "(Ljava/lang/String;)V", javaMessage.object<jstring>());
该函数在 Qt 5.12 引入。
[static]
JavaVM
*QAndroidJniEnvironment::
javaVM
()
返回 Java VM 接口。
返回 JNI 环境指针。
提供访问 QAndroidJniEnvironment 的 JNIEnv 指针。