在 qt 中执行 java 文件

Executing java file in qt

我正在尝试在 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 文件,我很困惑,不知道如何调用 onUpdate 函数,有什么想法吗?

对于 Qt Android 应用程序中的 运行 Java 代码,您应该使用 the 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);

更详细的解释可以看this.