From d566b0e2809093819daf50bbd421b6c98f085c5b Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 1 Aug 2024 23:13:13 +0100 Subject: [PATCH] Android SDK 34 (#14892) --- .github/workflows/android.yml | 7 ++++++- android/app/build.gradle | 10 +++++++--- android/app/src/main/AndroidManifest.xml | 3 +-- .../main/java/net/minetest/minetest/MainActivity.java | 8 +++++++- .../main/java/net/minetest/minetest/UnzipService.java | 1 + android/build.gradle | 2 +- android/gradle.properties | 2 ++ android/gradle/wrapper/gradle-wrapper.properties | 2 +- android/native/build.gradle | 6 +++--- android/native/src/main/AndroidManifest.xml | 2 +- 10 files changed, 30 insertions(+), 13 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 0896d9abc..34db1a662 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -35,7 +35,12 @@ jobs: - name: Install deps run: | sudo apt-get update - sudo apt-get install -y --no-install-recommends gettext openjdk-17-jdk-headless + sudo apt-get install -y --no-install-recommends gettext + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' - name: Build AAB with Gradle # We build an AAB as well for uploading to the the Play Store. run: cd android; ./gradlew bundlerelease diff --git a/android/app/build.gradle b/android/app/build.gradle index 30ee19c95..fe6c4ab0d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,17 +1,20 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 33 - buildToolsVersion '33.0.2' ndkVersion "$ndk_version" defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 21 - targetSdkVersion 33 + compileSdk 34 + targetSdkVersion 34 versionName "${versionMajor}.${versionMinor}.${versionPatch}" versionCode project.versionCode } + buildFeatures { + buildConfig true + } + // load properties Properties props = new Properties() def propfile = file('../local.properties') @@ -49,6 +52,7 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + namespace 'net.minetest.minetest' } task prepareAssets() { diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b629610d8..9197b9131 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,7 @@ + android:installLocation="auto"> diff --git a/android/app/src/main/java/net/minetest/minetest/MainActivity.java b/android/app/src/main/java/net/minetest/minetest/MainActivity.java index 9eaa7316d..7735e8b3d 100644 --- a/android/app/src/main/java/net/minetest/minetest/MainActivity.java +++ b/android/app/src/main/java/net/minetest/minetest/MainActivity.java @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., package net.minetest.minetest; +import android.annotation.SuppressLint; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.BroadcastReceiver; @@ -83,13 +84,18 @@ public class MainActivity extends AppCompatActivity { } }; + @SuppressLint("UnspecifiedRegisterReceiverFlag") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(ACTION_UPDATE); - registerReceiver(myReceiver, filter); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + registerReceiver(myReceiver, filter, RECEIVER_NOT_EXPORTED); + } else { + registerReceiver(myReceiver, filter); + } mProgressBar = findViewById(R.id.progressBar); mTextView = findViewById(R.id.textView); diff --git a/android/app/src/main/java/net/minetest/minetest/UnzipService.java b/android/app/src/main/java/net/minetest/minetest/UnzipService.java index 5dccc4563..261eebb8e 100644 --- a/android/app/src/main/java/net/minetest/minetest/UnzipService.java +++ b/android/app/src/main/java/net/minetest/minetest/UnzipService.java @@ -186,6 +186,7 @@ public class UnzipService extends IntentService { private void publishProgress(@Nullable Notification.Builder notificationBuilder, @StringRes int message, int progress) { Intent intentUpdate = new Intent(ACTION_UPDATE); + intentUpdate.setPackage(getPackageName()); intentUpdate.putExtra(ACTION_PROGRESS, progress); intentUpdate.putExtra(ACTION_PROGRESS_MESSAGE, message); if (!isSuccess) diff --git a/android/build.gradle b/android/build.gradle index 1805ba856..34f78732a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -16,7 +16,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' + classpath 'com.android.tools.build:gradle:8.5.1' classpath 'de.undercouch:gradle-download-task:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/android/gradle.properties b/android/gradle.properties index 333d3ad95..238ccd7a7 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -9,3 +9,5 @@ org.gradle.parallel.threads=8 org.gradle.configureondemand=true android.enableJetifier=false android.useAndroidX=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 1af9e0930..b82aa23a4 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/android/native/build.gradle b/android/native/build.gradle index 96a7739c0..0be7c1d99 100644 --- a/android/native/build.gradle +++ b/android/native/build.gradle @@ -2,12 +2,11 @@ apply plugin: 'com.android.library' apply plugin: 'de.undercouch.download' android { - compileSdkVersion 33 - buildToolsVersion '33.0.2' ndkVersion "$ndk_version" defaultConfig { minSdkVersion 21 - targetSdkVersion 33 + compileSdk 34 + targetSdkVersion 34 externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared", @@ -40,6 +39,7 @@ android { } } } + namespace 'net.minetest' } // get precompiled deps diff --git a/android/native/src/main/AndroidManifest.xml b/android/native/src/main/AndroidManifest.xml index 19451c7fd..cc947c567 100644 --- a/android/native/src/main/AndroidManifest.xml +++ b/android/native/src/main/AndroidManifest.xml @@ -1 +1 @@ - +