在 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.
我正在尝试在 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.