Skip to content

Conversation

@Frenzie
Copy link
Member

@Frenzie Frenzie commented Sep 28, 2025

Without this Android provides an annoying error message, see https://www.mobileread.com/forums/showthread.php?p=4537017#post4537017.

I don't think a change like this should affect older devices but the oldest I can test is Android 6. (And the emulator doesn't go below 7.)

It'd also necessitate a minor bump like koreader/koreader-base#1897.


This change is Reviewable

Comment on lines +2 to +3
ext.compileSdk = 34
ext.targetSdk = 34
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

36 seems to work too but I don't really want to think about Gradle atm (but you can consider the registerReceiver change merely informative if we also want to bump Gradle simultaneously):

WARNING: We recommend using a newer Android Gradle plugin to use compileSdk = 36

This Android Gradle plugin (8.4.2) was tested up to compileSdk = 34.

You are strongly encouraged to update your project to use a newer
Android Gradle plugin that has been tested with compileSdk = 36.

If you are already using the latest version of the Android Gradle plugin,
you may need to wait until a newer version with support for compileSdk = 36 is available.

It may be worth noting that Android Studio claims to be able to do it automatically:

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did compile yesterday with:

diff --git a/platform/android/luajit-launcher/build.gradle b/platform/android/luajit-launcher/build.gradle
index 6dd196cb31..ec70fa9dd5 100644
--- a/platform/android/luajit-launcher/build.gradle
+++ b/platform/android/luajit-launcher/build.gradle
@@ -3,7 +3,7 @@ buildscript {
     ext.targetSdk = 30
     ext.minSdk = 18
 
-    ext.gradle_plugin_version = '8.4.2'
+    ext.gradle_plugin_version = '8.7.3'
     ext.kotlin_plugin_version = '1.9.24'
     ext.androidx_core_version = '1.6.0'
     ext.androidx_appcompat_version = '1.3.1'
diff --git a/platform/android/luajit-launcher/gradle.properties b/platform/android/luajit-launcher/gradle.properties
index 1ffcbe473d..10fdff2de7 100644
--- a/platform/android/luajit-launcher/gradle.properties
+++ b/platform/android/luajit-launcher/gradle.properties
@@ -1,6 +1,7 @@
 org.gradle.warning.mode=all
 org.gradle.caching=true
 org.gradle.configuration-cache=true
+org.gradle.configuration-cache.parallel=true
 org.gradle.configureondemand=true
 org.gradle.parallel=true
 
diff --git a/platform/android/luajit-launcher/gradle/wrapper/gradle-wrapper.properties b/platform/android/luajit-launcher/gradle/wrapper/gradle-wrapper.properties
index 17655d0ef2..81aa1c0448 100644
--- a/platform/android/luajit-launcher/gradle/wrapper/gradle-wrapper.properties
+++ b/platform/android/luajit-launcher/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

AFAIK, the maximum combination still supporting SDK 34.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APKs here, if you want to test.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK, the maximum combination still supporting SDK 34.

In case of a Gradle bump I'd gravitate towards a combination with SDK 36, or at least it seems like it'd be more effort to do it in smaller steps and I didn't notice anything wrong with 36.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works fine, but I see no reason it shouldn't. ;-)

But I meant we might as well go straight for newer Gradle + SDK 36 unless there's a reason not to, otherwise the same pretend outdated dance comes again next year already.

ext.gradle_plugin_version = '8.4.2'
ext.kotlin_plugin_version = '1.9.24'
ext.androidx_core_version = '1.6.0'
ext.androidx_core_version = '1.9.0'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need at least this version for Context.RECEIVER_EXPORTED.

"native orientation: %s", if (this.screenIsLandscape) "landscape" else "portrait"))

registerReceiver(event, event.filter)
if (Build.VERSION.SDK_INT >= 33) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

33 introduced context-registered receivers, 34 required them, so this could also read 34 instead if preferred for some reason.

https://developer.android.com/about/versions/13/features#runtime-receivers
https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants