From 1e9d3144829b7fe69da2f5ac321de06c60163c4e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 24 Aug 2023 08:23:06 -0700
Subject: [PATCH] Updated to Android minSdkVersion 19 and targetSdkVersion 34
This is updated to meet the latest requirements for apps on the Google Play store
---
android-project/app/build.gradle | 20 +++++++++----------
.../app/src/main/AndroidManifest.xml | 1 -
android-project/build.gradle | 2 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
docs/README-android.md | 14 ++++++-------
5 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/android-project/app/build.gradle b/android-project/app/build.gradle
index f59f482cd0a6..a158bbffa4c3 100644
--- a/android-project/app/build.gradle
+++ b/android-project/app/build.gradle
@@ -8,23 +8,23 @@ else {
}
android {
- compileSdkVersion 31
+ if (buildAsApplication) {
+ namespace "org.libsdl.app"
+ }
+ compileSdkVersion 34
defaultConfig {
- if (buildAsApplication) {
- applicationId "org.libsdl.app"
- }
- minSdkVersion 16
- targetSdkVersion 31
+ minSdkVersion 19
+ targetSdkVersion 34
versionCode 1
versionName "1.0"
externalNativeBuild {
ndkBuild {
- arguments "APP_PLATFORM=android-16"
+ arguments "APP_PLATFORM=android-19"
// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
abiFilters 'arm64-v8a'
}
cmake {
- arguments "-DANDROID_APP_PLATFORM=android-16", "-DANDROID_STL=c++_static"
+ arguments "-DANDROID_APP_PLATFORM=android-19", "-DANDROID_STL=c++_static"
// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
abiFilters 'arm64-v8a'
}
@@ -54,10 +54,10 @@ android {
}
}
- lintOptions {
+ lint {
abortOnError false
}
-
+
if (buildAsLibrary) {
libraryVariants.all { variant ->
variant.outputs.each { output ->
diff --git a/android-project/app/src/main/AndroidManifest.xml b/android-project/app/src/main/AndroidManifest.xml
index d997afe4a49d..e0d033410e14 100644
--- a/android-project/app/src/main/AndroidManifest.xml
+++ b/android-project/app/src/main/AndroidManifest.xml
@@ -3,7 +3,6 @@
com.gamemaker.game
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.libsdl.app"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="auto">
diff --git a/android-project/build.gradle b/android-project/build.gradle
index 6f629c8aa758..2c911c6ff155 100644
--- a/android-project/build.gradle
+++ b/android-project/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.0.3'
+ classpath 'com.android.tools.build:gradle:8.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/android-project/gradle/wrapper/gradle-wrapper.properties b/android-project/gradle/wrapper/gradle-wrapper.properties
index ada5af48a6c4..5b9d75997372 100644
--- a/android-project/gradle/wrapper/gradle-wrapper.properties
+++ b/android-project/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Nov 11 18:20:34 PST 2021
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/docs/README-android.md b/docs/README-android.md
index 75a8f60daba0..2eaee31bdd2a 100644
--- a/docs/README-android.md
+++ b/docs/README-android.md
@@ -10,13 +10,13 @@ The rest of this README covers the Android gradle style build process.
Requirements
================================================================================
-Android SDK (version 31 or later)
+Android SDK (version 34 or later)
https://developer.android.com/sdk/index.html
Android NDK r15c or later
https://developer.android.com/tools/sdk/ndk/index.html
-Minimum API level supported by SDL: 16 (Android 4.1)
+Minimum API level supported by SDL: 19 (Android 4.4)
How the port works
@@ -435,13 +435,13 @@ The Tegra Graphics Debugger is available from NVidia here:
https://developer.nvidia.com/tegra-graphics-debugger
-Why is API level 16 the minimum required?
+Why is API level 19 the minimum required?
================================================================================
-The latest NDK toolchain doesn't support targeting earlier than API level 16.
-As of this writing, according to https://developer.android.com/about/dashboards/index.html
-about 99% of the Android devices accessing Google Play support API level 16 or
-higher (January 2018).
+The latest NDK toolchain doesn't support targeting earlier than API level 19.
+As of this writing, according to https://www.composables.com/tools/distribution-chart
+about 99.7% of the Android devices accessing Google Play support API level 19 or
+higher (August 2023).
A note regarding the use of the "dirty rectangles" rendering technique