-
Notifications
You must be signed in to change notification settings - Fork 103
Compile against SDK 34 #572
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
| ext.compileSdk = 34 | ||
| ext.targetSdk = 34 |
There was a problem hiding this comment.
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:
There was a problem hiding this comment.
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/distsAFAIK, the maximum combination still supporting SDK 34.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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' |
There was a problem hiding this comment.
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) { |
There was a problem hiding this comment.
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
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