Przeglądaj źródła

Merge tag '11.5a' into 12.x-testmerge

Miku AuahDark 1 rok temu
rodzic
commit
fc6053974f

+ 6 - 1
.github/workflows/main.yml

@@ -14,7 +14,7 @@ jobs:
       uses: actions/checkout@v3
       uses: actions/checkout@v3
       with:
       with:
         submodules: true
         submodules: true
-    - name: Setup Java 11
+    - name: Setup Java 17
       uses: actions/setup-java@v3
       uses: actions/setup-java@v3
       with:
       with:
         distribution: adopt-hotspot
         distribution: adopt-hotspot
@@ -47,3 +47,8 @@ jobs:
       with:
       with:
         name: love-android-embed.aab
         name: love-android-embed.aab
         path: app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab
         path: app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab
+    - name: Artifact (Debug symbols)
+      uses: actions/upload-artifact@v3
+      with:
+        name: love-android-unstripped-debugsyms
+        path: love/build/intermediates/library_jni

+ 18 - 10
README.md

@@ -1,7 +1,7 @@
 Android Port of LÖVE, an awesome 2D game engine for Lua (http://love2d.org)  
 Android Port of LÖVE, an awesome 2D game engine for Lua (http://love2d.org)  
 Copyright (c) 2006-2023 LOVE Development Team
 Copyright (c) 2006-2023 LOVE Development Team
 
 
-![](https://github.com/love2d/love-android/workflows/build/badge.svg)
+![Build Status](https://github.com/love2d/love-android/workflows/build/badge.svg)
 
 
 Download:
 Download:
 ---------
 ---------
@@ -38,32 +38,32 @@ Detailed instructions can be viewed at https://github.com/love2d/love-android/wi
 Quick Start:
 Quick Start:
 ------------
 ------------
 
 
-Before you start, install JDK 11 or later. If you intend to build from Android Studio, skip this step as
-Android Studio bundles its own JDK 11.
+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.
 
 
-Install CMake version 3.21 or later in your system. Install Android SDK with SDK API 33 (33.0.0) and Android NDK 25.2.9519653.
-Set the environment variables `ANDROID_SDK_ROOT` to your Android SDK location if necessary and run.
+Install CMake version 3.21 or later in your system. Install Android SDK with SDK API 34 (34.x.y) and Android NDK
+25.2.9519653, set the environment variable `ANDROID_HOME` to your Android SDK as necessary then run.
 
 
 ```
 ```
 $ ./gradlew assembleNormalRecord
 $ ./gradlew assembleNormalRecord
 ```
 ```
 
 
-in the root folder of this project. This should give you a .apk file in the `app/build/outputs/apk/normalRecord`
-subdirectory that you can then sign and install on your phone. The `normalRecord` .apk flavor is what you normally have
-when downloading one from https://love2d.org.
+in the root folder of this project. This should give you an .apk file in the `app/build/outputs/apk/normalRecord`
+subdirectory that you can then sign and install on your phone. The `normalRecord` .apk variant is what you normally have
+when downloading APK from https://love2d.org.
 
 
 If you want to put your game inside the APK, you can either:
 If you want to put your game inside the APK, you can either:
 
 
 1. Put all your games in `app/src/embed/assets` such that your `main.lua` path is `app/src/embed/assets/main.lua`; or
 1. Put all your games in `app/src/embed/assets` such that your `main.lua` path is `app/src/embed/assets/main.lua`; or
 2. Put your zipped \*.love in `app/src/embed/assets` with name `game.love`
 2. Put your zipped \*.love in `app/src/embed/assets` with name `game.love`
 
 
-And change the package name, application version string and codes, application display name, and the icons (see
+And change the application id, application version string and codes, application display name, and the icons (see
 [Game Packaging Wiki](https://github.com/love2d/love-android/wiki/Game-Packaging). Afterwards,
 [Game Packaging Wiki](https://github.com/love2d/love-android/wiki/Game-Packaging). Afterwards,
 run either `gradlew assembleEmbedNoRecordRelease` (or `gradlew assembleEmbedRecordRelease` if your game uses microphone) to
 run either `gradlew assembleEmbedNoRecordRelease` (or `gradlew assembleEmbedRecordRelease` if your game uses microphone) to
 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.1.1** or later. After opening it for the first time, open its SDK Manager
+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
 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.
 
 
@@ -76,9 +76,17 @@ Bugs and/or feature requests should be reported to the issue tracker at:
 * https://github.com/love2d/love-android/issues - LÖVE-Android-specific issues
 * https://github.com/love2d/love-android/issues - LÖVE-Android-specific issues
 * https://github.com/love2d/love/issues - for LÖVE in general
 * https://github.com/love2d/love/issues - for LÖVE in general
 
 
+Note: If in doubt, fill an issue report to https://github.com/love2d/love/issues. We'll transfer the issue to this repository as needed.
+
 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).

+ 1 - 1
app/build.gradle

@@ -172,7 +172,7 @@ dependencies {
     implementation 'com.google.oboe:oboe:1.7.0'
     implementation 'com.google.oboe:oboe:1.7.0'
 }
 }
 
 
-// We don't even use Kotlin. Why we have to suffer...
+// We don't even use Kotlin. Why we have to care about it?
 configurations.implementation {
 configurations.implementation {
     exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
     exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
 }
 }

+ 60 - 60
app/src/main/AndroidManifest.xml

@@ -1,60 +1,60 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.BLUETOOTH" />
-    <uses-permission android:name="android.permission.RECORD_AUDIO" />
-
-    <!-- OpenGL ES 2.0 -->
-    <uses-feature android:glEsVersion="0x00020000" />
-    <!-- Touchscreen support -->
-    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
-    <!-- Game controller support -->
-    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
-    <uses-feature android:name="android.hardware.gamepad" android:required="false" />
-    <uses-feature android:name="android.hardware.usb.host" android:required="false" />
-    <!-- External mouse input events -->
-    <uses-feature android:name="android.hardware.type.pc" android:required="false" />
-    <!-- Low latency audio -->
-    <uses-feature android:name="android.hardware.audio.low_latency" android:required="false" />
-    <uses-feature android:name="android.hardware.audio.pro" android:required="false" />
-
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/love"
-        android:label="${NAME}">
-        <!-- You don't have to change the activity class unless you have special needs! !-->
-        <activity
-            android:name="org.love2d.android.GameActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-            android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|navigation"
-            android:launchMode="singleInstance"
-            android:screenOrientation="${ORIENTATION}">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-                <category android:name="tv.ouya.intent.category.GAME" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".IntentReceiverActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.Translucent.NoTitleBar"
-            android:taskAffinity=""
-            android:excludeFromRecents="true"
-            android:relinquishTaskIdentity="true">
-            <intent-filter>
-                <action android:name="android.intent.action.SEND" />
-                <category android:name="android.intent.category.OPENABLE" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="*/*" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
+<?xml version="1.0" encoding="utf-8"?>
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+
+    <!-- OpenGL ES 2.0 -->
+    <uses-feature android:glEsVersion="0x00020000" />
+    <!-- Touchscreen support -->
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
+    <!-- Game controller support -->
+    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
+    <uses-feature android:name="android.hardware.gamepad" android:required="false" />
+    <uses-feature android:name="android.hardware.usb.host" android:required="false" />
+    <!-- External mouse input events -->
+    <uses-feature android:name="android.hardware.type.pc" android:required="false" />
+    <!-- Low latency audio -->
+    <uses-feature android:name="android.hardware.audio.low_latency" android:required="false" />
+    <uses-feature android:name="android.hardware.audio.pro" android:required="false" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/love"
+        android:label="${NAME}">
+        <!-- You don't have to change the activity class unless you have special needs! !-->
+        <activity
+            android:name="org.love2d.android.GameActivity"
+            android:exported="true"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+            android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|navigation"
+            android:launchMode="singleInstance"
+            android:screenOrientation="${ORIENTATION}">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+                <category android:name="tv.ouya.intent.category.GAME" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".IntentReceiverActivity"
+            android:exported="true"
+            android:theme="@android:style/Theme.Translucent.NoTitleBar"
+            android:taskAffinity=""
+            android:excludeFromRecents="true"
+            android:relinquishTaskIdentity="true">
+            <intent-filter>
+                <action android:name="android.intent.action.SEND" />
+                <category android:name="android.intent.category.OPENABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="*/*" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>

+ 0 - 7
app/src/noRecord/AndroidManifest.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
-</manifest>

+ 45 - 45
app/src/normal/AndroidManifest.xml

@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <application android:icon="@drawable/love">
-        <activity
-            android:name=".MainActivity"
-            android:exported="true"
-            android:launchMode="singleTop"
-            android:theme="@style/Theme.AppCompat.DayNight">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <!--
-            Important: GameActivity class name MUST be explicitly written as
-            "org.love2d.android.GameActivity" without any shortcuts.
-        -->
-        <activity
-            android:name="org.love2d.android.GameActivity"
-            android:exported="false"
-            tools:replace="android:exported">
-            <intent-filter tools:node="removeAll" />
-            <intent-filter>
-                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".AboutActivity"
-            android:exported="false"
-            android:parentActivityName=".MainActivity"
-            android:theme="@style/Theme.AppCompat.DayNight" />
-        <provider
-            android:name="org.love2d.android.LoveDocumentsProvider"
-            android:authorities="${applicationId}.documents"
-            android:exported="true"
-            android:grantUriPermissions="true"
-            android:permission="android.permission.MANAGE_DOCUMENTS">
-            <intent-filter>
-                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
-            </intent-filter>
-        </provider>
-    </application>
-
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <application android:icon="@drawable/love">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true"
+            android:launchMode="singleTop"
+            android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <!--
+            Important: GameActivity class name MUST be explicitly written as
+            "org.love2d.android.GameActivity" without any shortcuts.
+        -->
+        <activity
+            android:name="org.love2d.android.GameActivity"
+            android:exported="false"
+            tools:replace="android:exported">
+            <intent-filter tools:node="removeAll" />
+            <intent-filter>
+                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".AboutActivity"
+            android:exported="false"
+            android:parentActivityName=".MainActivity"
+            android:theme="@style/Theme.AppCompat.DayNight" />
+        <provider
+            android:name="org.love2d.android.LoveDocumentsProvider"
+            android:authorities="${applicationId}.documents"
+            android:exported="true"
+            android:grantUriPermissions="true"
+            android:permission="android.permission.MANAGE_DOCUMENTS">
+            <intent-filter>
+                <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+            </intent-filter>
+        </provider>
+    </application>
+
 </manifest>
 </manifest>

+ 1 - 1
gradle.properties

@@ -8,7 +8,7 @@ app.name_byte_array=76,195,150,86,69,32,102,111,114,32,65,110,100,114,111,105,10
 
 
 app.application_id=org.love2d.android
 app.application_id=org.love2d.android
 app.orientation=landscape
 app.orientation=landscape
-app.version_code=32
+app.version_code=33
 app.version_name=12.0
 app.version_name=12.0
 
 
 # No need to modify anything past this line!
 # No need to modify anything past this line!