Qt 调用 Java 方法笔记

Qt 调用 Java 方法笔记

假设遇到相似的错误:

error: undefined reference to '_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)'

那就是你使用了一个错误的函数来调用 Java 方法了。

The main difference is that QAndroidJniObject::callMethod returns a primitive data type like jint or jbyte but QAndroidJniObject::callObjectMethod returns an object of type QAndroidJniObject.

Using which one all depends on your needs and the return type of the function you want to call. If your function returns an object type like jobject, jstring, jarray,… then you should definitely use QAndroidJniObject::callObjectMethod. Otherwise you can use either of the two.

就是參照以调用的 Java 方法返回的对象来使用不同的函数,假设返回參数为对象比如是数组,字符串,就使用 QAndroidJniObject::callObjectMethod,假设是基本数据类型就使用 QAndroidJniObject::callMethod


參考

What is the difference between QAndroidJniObject::callMethod() and QAndroidJniObject::callObjectMethod()?

https://bugreports.qt.io/browse/QTBUG-37212

error: undefined reference to ‘_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)’

原文地址:https://www.cnblogs.com/gavanwanggw/p/7202706.html