Browse Source

[flutter] Upgrade to AGP 8.5.1, NDK 28.1.13356709, minSDK 21, Closes #2849

Mario Zechner 3 months ago
parent
commit
13095faa8c

+ 1 - 0
.gitignore

@@ -221,3 +221,4 @@ spine-godot/build/version.txt
 spine-godot/vc140.pdb
 spine-godot/vc140.pdb
 spine-godot/example-v4-extension/bin
 spine-godot/example-v4-extension/bin
 spine-godot/example-v4-extension/MoltenVK.xcframework
 spine-godot/example-v4-extension/MoltenVK.xcframework
+spine-flutter/example/android/app/.cxx

+ 3 - 3
spine-flutter/android/build.gradle

@@ -11,7 +11,7 @@ buildscript {
 
 
     dependencies {
     dependencies {
         // The Android Gradle Plugin knows how to build native code with the NDK.
         // The Android Gradle Plugin knows how to build native code with the NDK.
-        classpath 'com.android.tools.build:gradle:7.1.2'
+        classpath 'com.android.tools.build:gradle:8.5.1'
     }
     }
 }
 }
 
 
@@ -33,7 +33,7 @@ android {
 
 
     // Bumping the plugin ndkVersion requires all clients of this plugin to bump
     // Bumping the plugin ndkVersion requires all clients of this plugin to bump
     // the version in their app and to download a newer version of the NDK.
     // the version in their app and to download a newer version of the NDK.
-    ndkVersion "21.1.6352462"
+    ndkVersion "28.1.13356709"
 
 
     // Invoke the shared CMake build with the Android Gradle Plugin.
     // Invoke the shared CMake build with the Android Gradle Plugin.
     externalNativeBuild {
     externalNativeBuild {
@@ -56,6 +56,6 @@ android {
     }
     }
 
 
     defaultConfig {
     defaultConfig {
-        minSdkVersion 16
+        minSdkVersion 21
     }
     }
 }
 }

+ 2 - 0
spine-flutter/example/.gitignore

@@ -5,9 +5,11 @@
 *.swp
 *.swp
 .DS_Store
 .DS_Store
 .atom/
 .atom/
+.build/
 .buildlog/
 .buildlog/
 .history
 .history
 .svn/
 .svn/
+.swiftpm/
 migrate_working_dir/
 migrate_working_dir/
 
 
 # IntelliJ related
 # IntelliJ related

+ 10 - 15
spine-flutter/example/android/app/build.gradle

@@ -1,3 +1,9 @@
+plugins {
+    id "com.android.application"
+    id "kotlin-android"
+    id "dev.flutter.flutter-gradle-plugin"
+}
+
 def localProperties = new Properties()
 def localProperties = new Properties()
 def localPropertiesFile = rootProject.file('local.properties')
 def localPropertiesFile = rootProject.file('local.properties')
 if (localPropertiesFile.exists()) {
 if (localPropertiesFile.exists()) {
@@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) {
     }
     }
 }
 }
 
 
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
-    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
 def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
 def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
 if (flutterVersionCode == null) {
 if (flutterVersionCode == null) {
     flutterVersionCode = '1'
     flutterVersionCode = '1'
@@ -21,13 +22,11 @@ if (flutterVersionName == null) {
     flutterVersionName = '1.0'
     flutterVersionName = '1.0'
 }
 }
 
 
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
 android {
 android {
     compileSdkVersion flutter.compileSdkVersion
     compileSdkVersion flutter.compileSdkVersion
-    ndkVersion flutter.ndkVersion
+    // ndkVersion flutter.ndkVersion
+    ndkVersion "28.1.13356709"
+    namespace "com.esotericsoftware.spine.android"
 
 
     compileOptions {
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         sourceCompatibility JavaVersion.VERSION_1_8
@@ -44,7 +43,7 @@ android {
 
 
     defaultConfig {
     defaultConfig {
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
-        applicationId "com.example.spine_flutter_example"
+        applicationId "com.esotericsoftware.spine.android"
         // You can update the following values to match your application needs.
         // You can update the following values to match your application needs.
         // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
         // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
         minSdkVersion flutter.minSdkVersion
         minSdkVersion flutter.minSdkVersion
@@ -65,7 +64,3 @@ android {
 flutter {
 flutter {
     source '../..'
     source '../..'
 }
 }
-
-dependencies {
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-}

+ 1 - 2
spine-flutter/example/android/app/src/debug/AndroidManifest.xml

@@ -1,5 +1,4 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.spine_flutter_example">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- The INTERNET permission is required for development. Specifically,
     <!-- The INTERNET permission is required for development. Specifically,
          the Flutter tool needs it to communicate with the running application
          the Flutter tool needs it to communicate with the running application
          to allow setting breakpoints, to provide hot reload, etc.
          to allow setting breakpoints, to provide hot reload, etc.

+ 1 - 2
spine-flutter/example/android/app/src/main/AndroidManifest.xml

@@ -1,5 +1,4 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.spine_flutter_example">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
    <application
         android:label="spine_flutter_example"
         android:label="spine_flutter_example"
         android:name="${applicationName}"
         android:name="${applicationName}"

+ 1 - 1
spine-flutter/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt → spine-flutter/example/android/app/src/main/kotlin/com/esotericsoftware/spine/android/MainActivity.kt

@@ -1,4 +1,4 @@
-package com.example.example
+package com.esotericsoftware.spine.android
 
 
 import io.flutter.embedding.android.FlutterActivity
 import io.flutter.embedding.android.FlutterActivity
 
 

+ 0 - 6
spine-flutter/example/android/app/src/main/kotlin/com/example/spine_flutter_example/MainActivity.kt

@@ -1,6 +0,0 @@
-package com.example.spine_flutter_example
-
-import io.flutter.embedding.android.FlutterActivity
-
-class MainActivity: FlutterActivity() {
-}

+ 1 - 2
spine-flutter/example/android/app/src/profile/AndroidManifest.xml

@@ -1,5 +1,4 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.spine_flutter_example">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- The INTERNET permission is required for development. Specifically,
     <!-- The INTERNET permission is required for development. Specifically,
          the Flutter tool needs it to communicate with the running application
          the Flutter tool needs it to communicate with the running application
          to allow setting breakpoints, to provide hot reload, etc.
          to allow setting breakpoints, to provide hot reload, etc.

+ 0 - 13
spine-flutter/example/android/build.gradle

@@ -1,16 +1,3 @@
-buildscript {
-    ext.kotlin_version = '1.6.10'
-    repositories {
-        google()
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:7.1.2'
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-    }
-}
-
 allprojects {
 allprojects {
     repositories {
     repositories {
         google()
         google()

+ 1 - 1
spine-flutter/example/android/gradle/wrapper/gradle-wrapper.properties

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip

+ 22 - 8
spine-flutter/example/android/settings.gradle

@@ -1,11 +1,25 @@
-include ':app'
+pluginManagement {
+    def flutterSdkPath = {
+        def properties = new Properties()
+        file("local.properties").withInputStream { properties.load(it) }
+        def flutterSdkPath = properties.getProperty("flutter.sdk")
+        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+        return flutterSdkPath
+    }()
 
 
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
+    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
 
 
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+    repositories {
+        google()
+        mavenCentral()
+        gradlePluginPortal()
+    }
+}
 
 
-def flutterSdkPath = properties.getProperty("flutter.sdk")
-assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
-apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
+plugins {
+    id "dev.flutter.flutter-plugin-loader" version "1.0.0" // apply true
+    id "com.android.application" version "8.5.1" apply false
+    id "org.jetbrains.kotlin.android" version "2.1.0" apply false
+}
+
+include ":app"

+ 16 - 16
spine-flutter/example/pubspec.lock

@@ -13,18 +13,18 @@ packages:
     dependency: transitive
     dependency: transitive
     description:
     description:
       name: characters
       name: characters
-      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+      sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "1.3.0"
+    version: "1.4.0"
   collection:
   collection:
     dependency: transitive
     dependency: transitive
     description:
     description:
       name: collection
       name: collection
-      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+      sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "1.18.0"
+    version: "1.19.1"
   crypto:
   crypto:
     dependency: transitive
     dependency: transitive
     description:
     description:
@@ -53,10 +53,10 @@ packages:
     dependency: "direct main"
     dependency: "direct main"
     description:
     description:
       name: flame
       name: flame
-      sha256: "2a2352741500ce47823dcf212f06b23e9bdb622454eab90244ee6da58e23b488"
+      sha256: f9e7a100c25f8d6bfd143bf325a9689c509216cd1c8133ce4684955c56770de7
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "1.15.0"
+    version: "1.28.1"
   flutter:
   flutter:
     dependency: "direct main"
     dependency: "direct main"
     description: flutter
     description: flutter
@@ -114,26 +114,26 @@ packages:
     dependency: transitive
     dependency: transitive
     description:
     description:
       name: material_color_utilities
       name: material_color_utilities
-      sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+      sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "0.8.0"
+    version: "0.11.1"
   meta:
   meta:
     dependency: transitive
     dependency: transitive
     description:
     description:
       name: meta
       name: meta
-      sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
+      sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "1.12.0"
+    version: "1.16.0"
   ordered_set:
   ordered_set:
     dependency: transitive
     dependency: transitive
     description:
     description:
       name: ordered_set
       name: ordered_set
-      sha256: "3fedcc9121b3ba24c0a84f32da2989c42e36c159b73feadbc2f402dc55966b81"
+      sha256: dc68b8f1abc7115b81cf890bf7d2ece4ed1d95e0f3e486ab4b64ab3d16d2ea42
       url: "https://pub.dev"
       url: "https://pub.dev"
     source: hosted
     source: hosted
-    version: "5.0.1"
+    version: "7.0.0"
   path:
   path:
     dependency: transitive
     dependency: transitive
     description:
     description:
@@ -154,7 +154,7 @@ packages:
     dependency: transitive
     dependency: transitive
     description: flutter
     description: flutter
     source: sdk
     source: sdk
-    version: "0.0.99"
+    version: "0.0.0"
   source_span:
   source_span:
     dependency: transitive
     dependency: transitive
     description:
     description:
@@ -169,7 +169,7 @@ packages:
       path: ".."
       path: ".."
       relative: true
       relative: true
     source: path
     source: path
-    version: "4.2.34"
+    version: "4.2.35"
   string_scanner:
   string_scanner:
     dependency: transitive
     dependency: transitive
     description:
     description:
@@ -211,5 +211,5 @@ packages:
     source: hosted
     source: hosted
     version: "0.7.5"
     version: "0.7.5"
 sdks:
 sdks:
-  dart: ">=3.3.0-0 <4.0.0"
-  flutter: ">=3.16.0"
+  dart: ">=3.7.0-0 <4.0.0"
+  flutter: ">=3.27.1"

+ 1 - 1
spine-flutter/example/pubspec.yaml

@@ -14,7 +14,7 @@ dependencies:
   spine_flutter:
   spine_flutter:
     path: ../
     path: ../
   cupertino_icons: ^1.0.6
   cupertino_icons: ^1.0.6
-  flame: ^1.10.1
+  flame: ^1.28.1
   raw_image_provider: ^0.2.0
   raw_image_provider: ^0.2.0
 
 
 dev_dependencies:
 dev_dependencies: