Кто-нибудь может помочь решить проблему: я создаю приложение для Android, и мне нужно вызвать функции Java из Qt C++, я тестирую, используя приведенную ниже информацию.
пожалуйста см. файл CMakeLists.txt ниже.
package org.qtproject.example.file;
import android.app.Activity;
import android.widget.Toast;
import org.qtproject.qt.android.QtNative;
public class MathOperations {
public static String add() {
return "This is a test for addition";
}
public static String multiply() {
return "This is a test for multiplication";
}
}
Кто-нибудь может помочь решить проблему: я создаю приложение для Android, и мне нужно вызвать функции Java из Qt C++, я тестирую, используя приведенную ниже информацию. пожалуйста см. файл CMakeLists.txt ниже. [code]cmake_minimum_required(VERSION 3.16)
qt_add_qml_module(apptesting URI testing VERSION 1.0 QML_FILES Main.qml RESOURCES android/AndroidManifest.xml android/build.gradle android/res/values/libs.xml android/res/xml/qtprovider_paths.xml android/gradle/wrapper/gradle-wrapper.jar android/gradle/wrapper/gradle-wrapper.properties android/gradle.properties android/gradlew android/gradlew.bat android/src/org/qtproject/example/file/MathOperations.java
SOURCES mathbridge.h mathbridge.cpp )
# Set Android source directory set(android_package_dir "${CMAKE_SOURCE_DIR}/android")
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. set_target_properties(apptesting PROPERTIES # MACOSX_BUNDLE_GUI_IDENTIFIER com.example.apptesting MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE )
public class MathOperations { public static String add() { return "This is a test for addition"; }
public static String multiply() { return "This is a test for multiplication"; } } [/code] Ниже приведен мой код реализации Qt C++ [code][![#include "mathbridge.h" #include #include
QString MathBridge::addNumbers() { QJniObject result = QJniObject::callStaticObjectMethod( "org/qtproject/example/file/MathOperations", // Fully qualified Java class name "add", // Java method name "()Ljava/lang/String;" // JNI method signature );
if (result.isValid()) { QString value = result.toString(); qDebug()