在 qt 中执行 java 文件

Executing java file in qt

本文关键字:java 文件 执行 qt      更新时间:2023-10-16

我正在尝试在qt中执行一个java文件,这是我的java文件代码:

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
public class Main extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                    int[] appWidgetIds) {
            // TODO Auto-generated method stub
            super.onUpdate(context, appWidgetManager, appWidgetIds);
    }
}

问题是如何调用这个java文件,我很困惑,不知道如何在更新上调用函数,有什么想法吗?

要在Qt Android应用程序中运行Java代码,您应该使用Qt Android Extras模块,该模块包含用于在Android上进行开发的附加功能。

您可以使用 JNI 从 C/C++ 调用 Java 函数,或者从 Java 回调 C/C++ 函数。

让我们假设你有一个静态的Java方法,如下所示:

package com.MyApp;
public class JavaClass
{
    public static int SomeMethod(int n)
    {
        ...
    }
}

首先,您需要将其添加到您的 .pro 文件中:

QT += androidextras

并包括相关的头文件:

#include <QAndroidJniObject>

然后,您可以从C++代码中调用静态 java 函数,如下所示:

bool retVal = QAndroidJniObject::callStaticMethod<jint>
                        ("com/MyApp/JavaClass" // class name
                        , "SomeMethod" // method name
                        , "(I)I" // signature
                        , val);

有关更详细的说明,您可以看到这一点。