0

假设我有一个 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

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

4

1 回答 1

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

相当于:

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

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

于 2014-03-01T00:49:16.560 回答