diff --git a/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java b/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java index 2eff4987..0006be3a 100644 --- a/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java +++ b/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java @@ -21,6 +21,8 @@ import androidx.core.view.ViewCompat; import androidx.core.view.WindowCompat; import android.view.WindowInsets; +import org.qtproject.qt.android.bindings.QtActivity; + public class NymeaAppActivity extends QtActivity { private static final String TAG = "nymea-app: NymeaAppActivity"; diff --git a/nymea-app/platformintegration/android/platformhelperandroid.cpp b/nymea-app/platformintegration/android/platformhelperandroid.cpp index 120a829d..054ffc51 100644 --- a/nymea-app/platformintegration/android/platformhelperandroid.cpp +++ b/nymea-app/platformintegration/android/platformhelperandroid.cpp @@ -117,7 +117,7 @@ QString PlatformHelperAndroid::machineHostname() const QString PlatformHelperAndroid::deviceSerial() const { - QJniObject activity = QJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); + QJniObject activity = QJniObject::callStaticObjectMethod("org/qtproject/qt/android/QtNative", "activity", "()Landroid/app/Activity;"); return activity.callObjectMethod("deviceSerial").toString(); } diff --git a/packaging/android/AndroidManifest.xml b/packaging/android/AndroidManifest.xml index 8ec00f45..3ea6c8c9 100644 --- a/packaging/android/AndroidManifest.xml +++ b/packaging/android/AndroidManifest.xml @@ -1,7 +1,19 @@ - + - + + + + + + + + + @@ -16,54 +28,61 @@ - - - + + + + + - - - - - - - - - - + - - - - - - - - + + + + + + @@ -95,14 +114,4 @@ - - - - - - - - diff --git a/packaging/android/build.gradle b/packaging/android/build.gradle index 7644943d..16e86bd3 100644 --- a/packaging/android/build.gradle +++ b/packaging/android/build.gradle @@ -12,6 +12,7 @@ buildscript { repositories { jcenter() google() + mavenCentral() } dependencies { @@ -33,10 +34,10 @@ allprojects { } } -apply plugin: 'com.android.application' +apply plugin: qtGradlePluginType dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation 'org.reactivestreams:reactive-streams:1.0.3' implementation 'io.reactivex.rxjava2:rxjava:2.2.0' implementation 'androidx.core:core:1.16.0' @@ -61,49 +62,58 @@ android { * The following variables: * - androidBuildToolsVersion, * - androidCompileSdkVersion - * - qt5AndroidDir - holds the path to qt android files + * - qtAndroidDir - holds the path to qt android files * needed to build any Qt application * on Android. + * - qtGradlePluginType - whether to build an app or a library * * are defined in gradle.properties file. This file is * updated by QtCreator and androiddeployqt tools. * Changing them manually might break the compilation! *******************************************************/ - compileSdkVersion androidCompileSdkVersion.toInteger() - buildToolsVersion androidBuildToolsVersion - namespace 'io.guh.nymeaapp' - buildFeatures.aidl = true + compileSdkVersion androidCompileSdkVersion + buildToolsVersion androidBuildToolsVersion + ndkVersion androidNdkVersion - packagingOptions { - jniLibs { - useLegacyPackaging = true - } - } + // Extract native libraries from the APK + packagingOptions.jniLibs.useLegacyPackaging true sourceSets { main { manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = [qtAndroidDir + '/src', 'src', 'java'] + aidl.srcDirs = [qtAndroidDir + '/src', 'src', 'aidl'] + res.srcDirs = [qtAndroidDir + '/res', 'res'] + resources.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] + java.srcDirs = [ qt5AndroidDir + '/src', nymeaAppRoot + '/nymea-app/platformintegration/android/java', nymeaAppRoot + '/QtZeroConf/android', 'src', 'java'] + if ("${useFirebase}" == "true") { java.srcDirs += [nymeaAppRoot + '/nymea-app/platformintegration/android/java-firebase'] } - aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] - res.srcDirs = [qt5AndroidDir + '/res', 'res'] - resources.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - assets.srcDirs = ['assets'] - jniLibs.srcDirs = ['libs'] } } + tasks.withType(JavaCompile) { + options.incremental = true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + lintOptions { abortOnError false } diff --git a/packaging/android/res/values/libs.xml b/packaging/android/res/values/libs.xml index 1437232f..ca84ac78 100644 --- a/packaging/android/res/values/libs.xml +++ b/packaging/android/res/values/libs.xml @@ -1,7 +1,7 @@ - https://download.qt.io/ministro/android/qt5/qt-5.8 + https://download.qt.io/ministro/android/qt6/qt-6.8 + +