- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 QAndroidJniObject
。作为测试,我只调用了 2 个 Java 函数,一个返回一个 int,另一个返回一个字符串。
当返回一个 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
是一个模板函数,它怎么可能为一种类型定义而对于另一种类型未定义呢?
编辑: 实际上,我只是用jobject
、jbyteArray
、jbooleanArray
、jbyte<进行了测试
, jboolean
, etc. 这是我找到的-只有整数类型比如jshort
, jint
, jlong
、jboolean
有效,而字符串、数组和对象都会给出一个 undefined reference
错误。
最佳答案
正如您在 following table 中看到的那样,整数类型是原始类型,而其余的是对象类型。因此,我建议您尝试使用:
jstring b = QAndroidJniObject::callStaticObjectMethod<jstring>("HelloJava", "getString")
这不是错误,而是功能。参见 this issue tracker entry官方立场:
关于android - 错误 : undefined reference to '_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331347/
我正在尝试从 JS 调用 Java,遵循 this tutorial .这是javascript代码: var r = jsb.reflection.callStaticMethod("org/coc
我正在尝试使用 QAndroidJniObject。作为测试,我只调用了 2 个 Java 函数,一个返回一个 int,另一个返回一个字符串。 当返回一个 int 时,这段代码可以正常编译: jint
我是一名优秀的程序员,十分优秀!