diff --git a/analysis_options.yaml b/analysis_options.yaml index 143015c4c..b40aede1b 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -12,6 +12,12 @@ include: package:flutter_lints/flutter.yaml analyzer: exclude: - lib/grpc/bilibili/** + - lib/utils/android/bindings.g.dart + - android/** + - ios/** + - linux/** + - macos/** + - windows/** # - lib/common/widgets/flutter/** formatter: diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 59b31be82..15aace0ef 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -19,6 +19,20 @@ subprojects { } subprojects { + beforeEvaluate { + if (project.name == "jni") { + val agpMajorVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION + .substringBefore('.') + .toInt() + val builtInKotlinProperty = + project.providers.gradleProperty("android.builtInKotlin").orNull + val isBuiltInKotlinEnabled = agpMajorVersion >= 9 && + (builtInKotlinProperty == null || builtInKotlinProperty.toBoolean()) + if (!isBuiltInKotlinEnabled) { + project.apply(plugin = "org.jetbrains.kotlin.android") + } + } + } afterEvaluate { if (project.extensions.findByName("android") != null) { val androidExtension = diff --git a/lib/utils/android/bindings.g.dart b/lib/utils/android/bindings.g.dart index 9388d0913..953b6e863 100644 --- a/lib/utils/android/bindings.g.dart +++ b/lib/utils/android/bindings.g.dart @@ -99,6 +99,7 @@ extension type Runnable._(jni$_.JObject _$this) implements jni$_.JObject { } final $i = jni$_.MethodInvocation.fromMessage($m); final $r = _$invokeMethod($p.sendPort.nativePort, $i); + $i.args?.release(); jni$_.ProtectedJniExtensions.returnResult($i.result, $r); }); implementer.add( diff --git a/pubspec.lock b/pubspec.lock index 3748cadbd..a20a7de3e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -404,26 +404,26 @@ packages: dependency: "direct main" description: name: dio - sha256: ea2bad3c89a27635ce2d85cce4d6b199da49a5a48ec77b03e45b65a3b90922b0 + sha256: "0df44ebba85e503958eb75d07eedd3c86275a58c1d3eda2f2ce8f0a2c3abbb3c" url: "https://pub.dev" source: hosted - version: "5.10.0" + version: "5.11.0" dio_http2_adapter: dependency: "direct main" description: name: dio_http2_adapter - sha256: c56522c50bb3bab7e3ca77c153b0f03ae672a87d8c32e46be8f2868693ec9f0a + sha256: c48daafd9cded83368ba0b7d731db6bc9d0413fe21727abf1575780b7c8a74a1 url: "https://pub.dev" source: hosted - version: "2.7.1" + version: "2.8.0" dio_web_adapter: dependency: transitive description: name: dio_web_adapter - sha256: dd58dc3861eb36edb13b217efc006a1c21e5bbc341de8c229b85634fa5e362e4 + sha256: "0786d0b7295a373de356fc0af4f6f1d0ab2844ed31b19dfc5e7556b70e24212c" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.1" dlna_dart: dependency: "direct main" description: @@ -968,10 +968,10 @@ packages: dependency: "direct main" description: name: jni - sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f + sha256: ca1efa31ef27a0b8ecbb4f8dcf3785e5ad1b8a54c64af9b72d287ae81f93a4f4 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" jni_flutter: dependency: transitive description: @@ -980,15 +980,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + jni_util: + dependency: transitive + description: + name: jni_util + sha256: "1ba86da04a5f2bf18fde2edb235587e70c5b0fc5bd4ba955f46b00942c3fc35f" + url: "https://pub.dev" + source: hosted + version: "1.0.0" jnigen: dependency: "direct dev" description: - path: "pkgs/jnigen" - ref: "55520836d363aac7f1ebae47387d03a30302be7b" - resolved-ref: "55520836d363aac7f1ebae47387d03a30302be7b" - url: "https://github.com/dart-lang/native.git" - source: git - version: "0.17.0-wip" + name: jnigen + sha256: "8e9887deae18ae9bb6067757020692bcfca52f614a98cd7a9a14cba6e5b43164" + url: "https://pub.dev" + source: hosted + version: "0.17.0" js: dependency: transitive description: @@ -1226,10 +1233,10 @@ packages: dependency: transitive description: name: objective_c - sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" + sha256: b7fb95a6d9a4f009edd63dc5ac69f07420b23a16161c6dd8660290b59c602e8e url: "https://pub.dev" source: hosted - version: "9.4.1" + version: "9.5.0" octo_image: dependency: transitive description: @@ -1394,10 +1401,10 @@ packages: dependency: transitive description: name: posix - sha256: bebff4a1df009c2331c08ffb3a3b9e8f26733b4a0de34b23dbb07b1b8af21979 + sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e url: "https://pub.dev" source: hosted - version: "6.5.1" + version: "6.5.2" pretty_qr_code: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 3e6b94d31..cb511ce40 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -231,11 +231,7 @@ dev_dependencies: flutter_launcher_icons: ^0.14.4 flutter_lints: ^6.0.0 flutter_native_splash: ^2.4.6 - jnigen: - git: - url: https://github.com/dart-lang/native.git - path: pkgs/jnigen - ref: 55520836d363aac7f1ebae47387d03a30302be7b + jnigen: ^0.17.0 flutter_launcher_icons: android: true