Browse Source

Update compile SDK version and NDK version.

* Target API level 34.

* Update NDK to r25b. This will be the last NDK update to LOVE 11.x as future NDK dropped support for Android KitKat and earlier.
Miku AuahDark 2 years ago
parent
commit
d257a3b987
4 changed files with 32 additions and 21 deletions
  1. 10 4
      README.md
  2. 6 6
      app/build.gradle
  3. 1 1
      build.gradle
  4. 15 10
      love/build.gradle

+ 10 - 4
README.md

@@ -38,10 +38,10 @@ Detailed instructions can be viewed at https://github.com/love2d/love-android/wi
 Quick Start:
 Quick Start:
 ------------
 ------------
 
 
-Before you start, install JDK 17 or later. If you intend to build from Android Studio, skip this step as
+Before you start, install JDK 17 (not later not earlier). If you intend to build from Android Studio, skip this step as
 Android Studio bundles its own JDK 17.
 Android Studio bundles its own JDK 17.
 
 
-Install Android SDK with SDK API 33 (33.0.0) and Android NDK 23.2.8568313, set the environment variable
+Install Android SDK with SDK API 34 (34.x.y) and Android NDK 25.2.9519653, set the environment variable
 `ANDROID_SDK_ROOT` to your Android SDK location and run:
 `ANDROID_SDK_ROOT` to your Android SDK location and run:
 
 
 ```
 ```
@@ -63,8 +63,8 @@ run either `gradlew assembleEmbedNoRecordRelease` (or `gradlew assembleEmbedReco
 generate APK which you can install or `gradlew bundleEmbedNoRecordRelease` (or `gradlew bundleEmbedRecordRelease`) to generate
 generate APK which you can install or `gradlew bundleEmbedNoRecordRelease` (or `gradlew bundleEmbedRecordRelease`) to generate
 AAB which you can upload to Play Store.
 AAB which you can upload to Play Store.
 
 
-Alternatively, you can install Android Studio **2022.2.1** or later. After opening it for the first time, open its SDK Manager
-and on the tab "SDK Tools", tick "Show Package Details" then select NDK (Side By Side) version 23.2.8568313. After that, open
+Alternatively, you can install Android Studio **2022.3.1** or later. After opening it for the first time, open its SDK Manager
+and on the tab "SDK Tools", tick "Show Package Details" then select NDK (Side By Side) version 25.2.9519653. After that, open
 the repository root.
 the repository root.
 
 
 Notice: Previously, the embed + APKTool method is preferred, but recent announcements by Google render that method obsolete.
 Notice: Previously, the embed + APKTool method is preferred, but recent announcements by Google render that method obsolete.
@@ -81,6 +81,12 @@ Note: If in doubt, fill an issue report to https://github.com/love2d/love/issues
 Changelog:
 Changelog:
 ----------
 ----------
 
 
+11.5:
+
+* Contains all relevant changes for desktop LÖVE [11.5](https://love2d.org/wiki/11.5).
+* Fixed audio in Android still playing in the background in certain cases. ([love2d/love#1828](https://github.com/love2d/love/issues/1828))
+
+
 11.4:
 11.4:
 
 
 * Contains all relevant changes for desktop LÖVE [11.4](https://love2d.org/wiki/11.4).
 * Contains all relevant changes for desktop LÖVE [11.4](https://love2d.org/wiki/11.4).

+ 6 - 6
app/build.gradle

@@ -4,15 +4,15 @@ apply plugin: 'com.android.application'
 
 
 android {
 android {
     namespace "org.love2d.android.executable"
     namespace "org.love2d.android.executable"
-    compileSdk 33
-    buildToolsVersion '33.0.0'
-    ndkVersion '23.2.8568313'
+    ndkVersion '25.2.9519653'
+
     defaultConfig {
     defaultConfig {
         applicationId project.properties["app.application_id"]
         applicationId project.properties["app.application_id"]
         versionCode project.properties["app.version_code"].toInteger()
         versionCode project.properties["app.version_code"].toInteger()
         versionName project.properties["app.version_name"]
         versionName project.properties["app.version_name"]
-        minSdkVersion 16
-        targetSdk 33
+        minSdk 16
+        compileSdk 34
+        targetSdk 34
         
         
         def getAppName = {
         def getAppName = {
             def nameArray = project.properties["app.name_byte_array"]
             def nameArray = project.properties["app.name_byte_array"]
@@ -44,7 +44,7 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
         }
     }
     }
-    flavorDimensions 'mode', 'recording'
+    flavorDimensions = ['mode', 'recording']
     productFlavors {
     productFlavors {
         normal {
         normal {
             dimension 'mode'
             dimension 'mode'

+ 1 - 1
build.gradle

@@ -18,7 +18,7 @@ buildscript {
         mavenCentral()
         mavenCentral()
     }
     }
     dependencies {
     dependencies {
-        classpath 'com.android.tools.build:gradle:8.0.0'
+        classpath 'com.android.tools.build:gradle:8.1.1'
 
 
         // NOTE: Do not place your application dependencies here; they belong
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
         // in the individual module build.gradle files

+ 15 - 10
love/build.gradle

@@ -6,15 +6,13 @@ android {
     // See https://code.google.com/p/android/issues/detail?id=52962
     // See https://code.google.com/p/android/issues/detail?id=52962
     // and http://stackoverflow.com/questions/27277433/why-does-gradle-build-my-module-in-release-mode-when-the-app-is-in-debug
     // and http://stackoverflow.com/questions/27277433/why-does-gradle-build-my-module-in-release-mode-when-the-app-is-in-debug
     // defaultPublishConfig "debug"
     // defaultPublishConfig "debug"
-    compileSdkVersion 33
-    buildToolsVersion '33.0.0'
-    ndkVersion '23.2.8568313'
     namespace "org.love2d.android"
     namespace "org.love2d.android"
+    ndkVersion '25.2.9519653'
 
 
     defaultConfig {
     defaultConfig {
-        compileSdkVersion 33
-        buildToolsVersion '33.0.0'
-        minSdkVersion 16
+        minSdk 16
+        compileSdk 34
+        targetSdk 34
         externalNativeBuild {
         externalNativeBuild {
             ndkBuild {
             ndkBuild {
                 arguments "-j" + Runtime.runtime.availableProcessors()
                 arguments "-j" + Runtime.runtime.availableProcessors()
@@ -23,10 +21,10 @@ android {
         ndk {
         ndk {
             // Specifies the ABI configurations of your native
             // Specifies the ABI configurations of your native
             // libraries Gradle should build and package with your APK.
             // libraries Gradle should build and package with your APK.
+            // noinspection ChromeOsAbiSupport
             abiFilters 'armeabi-v7a', 'arm64-v8a'
             abiFilters 'armeabi-v7a', 'arm64-v8a'
             debugSymbolLevel 'SYMBOL_TABLE'
             debugSymbolLevel 'SYMBOL_TABLE'
         }
         }
-        targetSdkVersion 33
     }
     }
 
 
     def retrieveAll3pModules = { ->
     def retrieveAll3pModules = { ->
@@ -35,6 +33,7 @@ android {
         fileTree("src/jni/lua-modules").visit { FileVisitDetails details ->
         fileTree("src/jni/lua-modules").visit { FileVisitDetails details ->
             if (details.isDirectory()) {
             if (details.isDirectory()) {
                 if (file(details.file.path + "/Android.mk").exists()) {
                 if (file(details.file.path + "/Android.mk").exists()) {
+                    def logger = project.getLogger()
                     logger.lifecycle("3rd-party module: " + details.file.path)
                     logger.lifecycle("3rd-party module: " + details.file.path)
 
 
                     def javainfo = file(details.file.path + "/java.txt")
                     def javainfo = file(details.file.path + "/java.txt")
@@ -42,7 +41,7 @@ android {
                         def fstream = new FileInputStream(javainfo)
                         def fstream = new FileInputStream(javainfo)
                         def infile = new BufferedReader(new InputStreamReader(fstream))
                         def infile = new BufferedReader(new InputStreamReader(fstream))
                         def javapath = infile.readLine().replace("\\", "/")
                         def javapath = infile.readLine().replace("\\", "/")
-                        def mpath = null
+                        def mpath = ""
 
 
                         if (javapath[0] != '/') {
                         if (javapath[0] != '/') {
                             mpath = details.file.path + "/" + javapath
                             mpath = details.file.path + "/" + javapath
@@ -69,11 +68,12 @@ android {
         }
         }
         debug {
         debug {
             ndk {
             ndk {
+                // noinspection ChromeOsAbiSupport
                 abiFilters += 'x86_64'
                 abiFilters += 'x86_64'
             }
             }
         }
         }
     }
     }
-    flavorDimensions 'mode'
+    flavorDimensions = ['mode']
     productFlavors {
     productFlavors {
         normal {
         normal {
             dimension 'mode'
             dimension 'mode'
@@ -103,7 +103,12 @@ android {
     }
     }
     packagingOptions {
     packagingOptions {
         jniLibs {
         jniLibs {
-            excludes += ['lib/arm64-v8a/libSDL2.so', 'lib/armeabi-v7a/libSDL2.so']
+            excludes += [
+                'lib/arm64-v8a/libSDL2.so',
+                'lib/armeabi-v7a/libSDL2.so',
+                'lib/x86_64/libSDL2.so',
+                'lib/x86/libSDL2.so'
+            ]
         }
         }
     }
     }
     lint {
     lint {