我正在嘗試使用QAndroidJniObject
。作爲一個測試,我只是調用2個Java函數,一個返回一個int,另一個返回一個字符串。錯誤:未定義引用'_jstring * QAndroidJniObject :: callStaticMethod <_jstring*>(char const *,char const *)'
當返回一個int,這個代碼編譯好:
jint a = QAndroidJniObject::callStaticMethod<jint>("HelloJava", "getInt");
但如果我把它改爲調用一個函數返回一個字符串,它失敗:
jstring b = QAndroidJniObject::callStaticMethod<jstring>("HelloJava", "getString");
它失敗
error: undefined reference to '_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)'
由於QAndroidJniObject::callStaticMethod
是一個模板函數,它如何被定義爲一種類型,但是u ndefined爲另一個?
編輯:其實,我只是用jobject
,jbyteArray
,jbooleanArray
,jbyte
,jboolean
等測試這是我發現的 - 只有整數類型,如jshort
,jint
,jlong
,jboolean
工作,同時串,數組和對象都會給出undefined reference
錯誤。
整數類型是原始的,而的jstring不是。 – lpapp 2014-12-06 12:10:56
因此'QAndroidJniObject :: callStaticMethod'不應該與'jstring'和'jobject'一起使用? – sashoalm 2014-12-06 12:12:11