Qt Android Extras Call Class

时间:2014-02-28 18:49:18

标签: android qt java-native-interface qtandroidextras

说我有一个Java类,

public static String helloWorld() {
    return "hello world!";
}

如何在Qt中获得此函数返回的内容?通知示例包含以下内容:

QAndroidJniObject javaNotification = QAndroidJniObject::fromString(m_notification);
QAndroidJniObject::callStaticMethod<void>("org/qtproject/example/notification/NotificationClient",
                                   "notify",
                                   "(Ljava/lang/String;)V",
                                   javaNotification.object<jstring>());

方法描述符应该是()Ljava/lang/String;吗? callStaticMethod之后的V形应该是什么?

编辑。固定,我不知道如何。我没有V形符号,描述符也是正确的。

1 个答案:

答案 0 :(得分:0)

QAndroidJniObject string = QAndroidJniObject::callStaticObjectMethod<jstring>("com/your/project/YourClass", "helloWorld");

相当于:

QAndroidJniObject string = QAndroidJniObject::callStaticObjectMethod("com/your/project/YourClass", "helloWorld", "()Ljava/lang/String;");

对于琐碎的签名,即不带参数的签名并返回其中一种已知的jni类型,您可以通过提供模板类型来编写短版本。