From b55b31113a2cf7a29586828ce4e310dbb8801784 Mon Sep 17 00:00:00 2001 From: Artak Kalantarian Date: Sun, 18 Dec 2022 00:54:54 +0400 Subject: [PATCH] Update Android Gradle Plugin to 7.3.1 (#611) --- .github/workflows/android-ci-pull.yml | 15 ++++- .github/workflows/android-ci.yml | 3 + .../MapboxGLAndroidSDKTestApp/build.gradle | 7 ++- .../mapboxsdk/testapp/MapLibreApplication.kt | 4 +- platform/android/README.md | 2 +- platform/android/build.gradle | 4 +- .../android/gradle/android-nitpick.gradle | 8 +-- platform/android/gradle/dependencies.gradle | 62 ++++++++++--------- .../gradle/wrapper/gradle-wrapper.properties | 6 +- platform/android/vendor/maplibre-java | 2 +- platform/linux/src/headless_backend_egl.cpp | 6 +- 11 files changed, 68 insertions(+), 51 deletions(-) diff --git a/.github/workflows/android-ci-pull.yml b/.github/workflows/android-ci-pull.yml index 2c187cab3..0c6c07c27 100644 --- a/.github/workflows/android-ci-pull.yml +++ b/.github/workflows/android-ci-pull.yml @@ -63,6 +63,9 @@ jobs: with: distribution: 'zulu' java-version: '11' + + - name: Setup Android SDK for accepting tool licenses + uses: android-actions/setup-android@v2 - name: Cache node modules uses: actions/cache@v3 @@ -116,9 +119,17 @@ jobs: - name: Run Android unit tests run: make run-android-unit-test - + + - name: Get latest CMake and Ninja + uses: lukka/get-cmake@latest + with: + cmakeVersion: 3.10.2 + ninjaVersion: latest + - name: Build libmapbox-gl.so for arm-v8 - run: make android-lib-arm-v8 + run: | + cmake --version + make android-lib-arm-v8 - name: Generate Espresso sanity tests run: make test-code-android diff --git a/.github/workflows/android-ci.yml b/.github/workflows/android-ci.yml index 4465d04b1..8cfcc2e98 100644 --- a/.github/workflows/android-ci.yml +++ b/.github/workflows/android-ci.yml @@ -63,6 +63,9 @@ jobs: distribution: 'zulu' java-version: '11' + - name: Setup Android SDK for accepting tool licenses + uses: android-actions/setup-android@v2 + - name: Cache node modules uses: actions/cache@v3 env: diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index 4da2486db..87e0fb0af 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -8,9 +8,10 @@ android { applicationId "com.mapbox.mapboxsdk.testapp" minSdkVersion androidVersions.minSdkVersion targetSdkVersion androidVersions.targetSdkVersion - versionCode 13 - versionName "6.0.0" + versionCode 14 + versionName "6.0.1" testInstrumentationRunner "com.mapbox.mapboxsdk.InstrumentationRunner" + multiDexEnabled = true } compileOptions { @@ -67,6 +68,8 @@ dependencies { implementation dependenciesList.supportDesign implementation dependenciesList.supportConstraintLayout + implementation dependenciesList.multidex + implementation dependenciesList.gmsLocation implementation dependenciesList.timber diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt index 424c97f22..1c501263e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapLibreApplication.kt @@ -1,10 +1,10 @@ package com.mapbox.mapboxsdk.testapp -import android.app.Application import android.os.StrictMode import android.os.StrictMode.ThreadPolicy import android.os.StrictMode.VmPolicy import android.text.TextUtils +import androidx.multidex.MultiDexApplication import com.mapbox.mapboxsdk.MapStrictMode import com.mapbox.mapboxsdk.Mapbox import com.mapbox.mapboxsdk.WellKnownTileServer @@ -22,7 +22,7 @@ import timber.log.Timber.DebugTree * Initialises components as LeakCanary, Strictmode, Timber and Mapbox * */ -class MapLibreApplication : Application() { +class MapLibreApplication : MultiDexApplication() { override fun onCreate() { super.onCreate() initializeLogger() diff --git a/platform/android/README.md b/platform/android/README.md index bdf663f22..6d2b36064 100644 --- a/platform/android/README.md +++ b/platform/android/README.md @@ -66,7 +66,7 @@ make aproj # Build package BUILDTYPE=Debug make apackage -#BUILDTYPE=Release make apackage +# BUILDTYPE=Release make apackage # Build release Test App make android diff --git a/platform/android/build.gradle b/platform/android/build.gradle index 43dbe3fd4..ab12a3a22 100644 --- a/platform/android/build.gradle +++ b/platform/android/build.gradle @@ -9,7 +9,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.4' + classpath 'com.android.tools.build:gradle:7.3.1' classpath dependenciesList.licensesPlugin classpath dependenciesList.kotlinPlugin // classpath dependenciesList.jacocoPlugin @@ -38,7 +38,7 @@ nexusPublishing { username = ossrhUsername password = ossrhPassword nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) - snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) + snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) } } } \ No newline at end of file diff --git a/platform/android/gradle/android-nitpick.gradle b/platform/android/gradle/android-nitpick.gradle index c068c5a58..e1d69e367 100644 --- a/platform/android/gradle/android-nitpick.gradle +++ b/platform/android/gradle/android-nitpick.gradle @@ -1,9 +1,7 @@ apply from: "${rootDir}/gradle/dependencies.gradle" -def MAPBOX_JAVA_DIR = 'maplibre-java' -def MAPBOX_JAVA_TAG_PREFIX = 'v' - -def MAPBOX_CORE_TAG_PREFIX = '-core-' +//def MAPBOX_JAVA_DIR = 'maplibre-java' +//def MAPBOX_JAVA_TAG_PREFIX = 'v' def MAPBOX_GESTURES_DIR = 'mapbox-gestures-android' def MAPBOX_GESTURES_TAG_PREFIX = 'v' @@ -13,7 +11,7 @@ task androidNitpick { println "Running android nitpick script" println "Verify vendor submodule pins" - verifyVendorSubmodulePin(MAPBOX_JAVA_DIR, MAPBOX_JAVA_TAG_PREFIX, versions.mapLibreServices) + // Will enter a task to re-evaluate and restore if needed verifyVendorSubmodulePin(MAPBOX_JAVA_DIR, MAPBOX_JAVA_TAG_PREFIX, versions.mapLibreServices) verifyVendorSubmodulePin(MAPBOX_GESTURES_DIR, MAPBOX_GESTURES_TAG_PREFIX, versions.mapboxGestures) verifyLicenseGeneration() diff --git a/platform/android/gradle/dependencies.gradle b/platform/android/gradle/dependencies.gradle index 086b9e092..31db4cbb5 100644 --- a/platform/android/gradle/dependencies.gradle +++ b/platform/android/gradle/dependencies.gradle @@ -7,35 +7,36 @@ ext { ] versions = [ - mapLibreServices : '5.9.0', - mapboxCore : '2.0.1', - mapboxGestures : '0.7.0', - appCompat : '1.0.0', - constraintLayout : '1.1.3', - recyclerView : '1.1.0', - material : '1.0.0', - uiAutomator : '2.2.0', - espresso : '3.2.0', - testRunner : '1.1.1', - fragment : '1.0.0', - annotation : '1.0.0', - leakCanary : '2.8.1', - junit : '4.12', - mockito : '3.0.0', - mockk : '1.9.3', - robolectric : '4.7.3', - timber : '4.7.1', - okhttp : '3.12.3', - kotlin : '1.3.72', - licenses : '0.8.80', - lint : '26.4.2', - gms : '17.0.0', - // jacoco : '0.8.5', - appcenter : '1.4', - ktlint : '0.40.0', - commonsIO : '2.6', - assertj : "3.11.1", - gradleNexus : "1.1.0" + mapLibreServices: '5.9.0', + mapboxCore : '2.0.1', + mapboxGestures : '0.7.0', + appCompat : '1.0.0', + constraintLayout: '1.1.3', + recyclerView : '1.1.0', + material : '1.0.0', + uiAutomator : '2.2.0', + espresso : '3.2.0', + testRunner : '1.1.1', + fragment : '1.0.0', + annotation : '1.0.0', + leakCanary : '2.8.1', + junit : '4.12', + mockito : '3.0.0', + mockk : '1.9.3', + robolectric : '4.7.3', + timber : '4.7.1', + okhttp : '3.12.3', + kotlin : '1.7.20', + licenses : '0.8.80', + lint : '26.4.2', + gms : '17.0.0', + // jacoco : '0.8.5', + appcenter : '1.4', + ktlint : '0.40.0', + commonsIO : '2.6', + assertj : "3.11.1", + gradleNexus : "1.1.0", + multidex : "2.0.1" ] dependenciesList = [ @@ -61,6 +62,7 @@ ext { supportRecyclerView : "androidx.recyclerview:recyclerview:${versions.recyclerView}", supportConstraintLayout: "androidx.constraintlayout:constraintlayout:${versions.constraintLayout}", supportDesign : "com.google.android.material:material:${versions.material}", + multidex : "androidx.multidex:multidex:${versions.multidex}", appCenter : "com.microsoft.appcenter:espresso-test-extension:${versions.appcenter}", commonsIO : "commons-io:commons-io:${versions.commonsIO}", @@ -72,7 +74,7 @@ ext { kotlinLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${versions.kotlin}", kotlinPlugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}", licensesPlugin : "com.jaredsburrows:gradle-license-plugin:${versions.licenses}", - // jacocoPlugin : "org.jacoco:org.jacoco.core:${versions.jacoco}", + // jacocoPlugin : "org.jacoco:org.jacoco.core:${versions.jacoco}", lint : "com.android.tools.lint:lint:${versions.lint}", lintApi : "com.android.tools.lint:lint-api:${versions.lint}", diff --git a/platform/android/gradle/wrapper/gradle-wrapper.properties b/platform/android/gradle/wrapper/gradle-wrapper.properties index d775c805a..62f4c40d8 100644 --- a/platform/android/gradle/wrapper/gradle-wrapper.properties +++ b/platform/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue May 28 09:39:37 CEST 2019 +#Thu Dec 15 15:24:50 PST 2022 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip +zipStoreBase=GRADLE_USER_HOME diff --git a/platform/android/vendor/maplibre-java b/platform/android/vendor/maplibre-java index c328d36ab..b39bdb726 160000 --- a/platform/android/vendor/maplibre-java +++ b/platform/android/vendor/maplibre-java @@ -1 +1 @@ -Subproject commit c328d36ab5cefc33bc7d24285cc6ee1f3dc2f461 +Subproject commit b39bdb72621dae4d7864d557c732131a30341e04 diff --git a/platform/linux/src/headless_backend_egl.cpp b/platform/linux/src/headless_backend_egl.cpp index 21db01251..2a3add53c 100644 --- a/platform/linux/src/headless_backend_egl.cpp +++ b/platform/linux/src/headless_backend_egl.cpp @@ -68,7 +68,7 @@ public: EGLConfig config = 0; }; -class EGLBackendImpl : public HeadlessBackend::Impl { +class EGLBackendImpl final : public HeadlessBackend::Impl { public: EGLBackendImpl() { // EGL initializes the context client version to 1 by default. We want to @@ -76,8 +76,8 @@ public: // objects and also to write vertex and fragment shaders in the OpenGL ES // Shading Language. const EGLint attribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 2, - EGL_NONE + EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE }; eglContext = eglCreateContext(eglDisplay->display, eglDisplay->config, EGL_NO_CONTEXT, attribs);