在QT中执行Java文件

5

我想在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函数,有什么想法吗?


你是否正在尝试使用QProcess启动一个包含Java代码的新进程? - user2836797
1个回答

5
为了在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);

您可以查看this,以获得更详细的解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接