如果遇到類似的錯誤:
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
。