Cod*_*ter 5 c++ java qt android qml
我正在尝试在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);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是如何调用这个java文件,我很困惑,不知道如何调用函数onUpdate,任何想法?
要在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)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
首先,您需要将其添加到.pro文件中:
QT += androidextras
Run Code Online (Sandbox Code Playgroud)
并包含相关的头文件:
#include <QAndroidJniObject>
Run Code Online (Sandbox Code Playgroud)
然后,您可以从C++代码中调用静态java函数,如:
bool retVal = QAndroidJniObject::callStaticMethod<jint>
("com/MyApp/JavaClass" // class name
, "SomeMethod" // method name
, "(I)I" // signature
, val);
Run Code Online (Sandbox Code Playgroud)
有关更详细的说明,您可以看到这一点.