пожалуйста см. файл CMakeLists.txt ниже.
Код: Выделить всё
cmake_minimum_required(VERSION 3.16)
project(testing VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.5 REQUIRED COMPONENTS Quick Widgets Core)
qt_standard_project_setup(REQUIRES 6.5)
qt_add_executable(apptesting
main.cpp
)
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
)
target_link_libraries(apptesting
PRIVATE Qt6::Quick
PRIVATE Qt6::Widgets
PRIVATE Qt6::Core
)
include(GNUInstallDirs)
install(TARGETS apptesting
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
Код: Выделить всё
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";
}
}
Код: Выделить всё
#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()
Подробнее здесь: [url]https://stackoverflow.com/questions/79224594/failed-to-call-java-function-from-qt-c[/url]