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 likejint
orjbyte
butQAndroidJniObject::callObjectMethod
returns an object of typeQAndroidJniObject
.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 useQAndroidJniObject::callObjectMethod
. Otherwise you can use either of the two.
就是參照以调用的 Java 方法返回的对象来使用不同的函数,假设返回參数为对象比如是数组,字符串,就使用 QAndroidJniObject::callObjectMethod
,假设是基本数据类型就使用 QAndroidJniObject::callMethod
。
參考