diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c2fe6d95..4517013bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ ### Bug fixes * Fix `flet build` failing on Windows when a dependency is pulled in via `[tool.flet.].dev_packages` (or any local-path install): the rewritten ` @ file://` URL now uses `Path.as_uri()`, producing the correct `file:///D:/...` three-slash form instead of `file://D:\...`, which pip on Windows parsed as a UNC path and aborted with `OSError: [Errno 2] No such file or directory: '\\\\D:\\a\\...'` ([#6577](https://github.com/flet-dev/flet/pull/6577)) by @FeodorFitsner. +* Fix `flet build apk` failing at `mergeDebugNativeLibs` with `N files found with path 'lib//libc++_shared.so'` when an app combines `serious_python_android` with another Flutter plugin that also bundles the NDK C++ runtime ([#6570](https://github.com/flet-dev/flet/issues/6570), [#6571](https://github.com/flet-dev/flet/pull/6571)) by @ndonkoHenri. ## 0.85.3 diff --git a/sdk/python/templates/build/{{cookiecutter.out_dir}}/android/app/build.gradle.kts b/sdk/python/templates/build/{{cookiecutter.out_dir}}/android/app/build.gradle.kts index 23ecd224b5..3bb7ddc6bf 100644 --- a/sdk/python/templates/build/{{cookiecutter.out_dir}}/android/app/build.gradle.kts +++ b/sdk/python/templates/build/{{cookiecutter.out_dir}}/android/app/build.gradle.kts @@ -31,6 +31,19 @@ android { "*/x86/libpython*.so", "*/x86_64/libpython*.so", ) + + // serious_python_android ships libc++_shared.so as part of the Python runtime payload + // (the cross-compiled wheels on pypi.flet.dev depend on it at link time). Many third-party + // Flutter plugins (ultralytics_yolo, sentry_flutter, several ML / CV / audio plugins) also + // bundle their own copy. When an app pulls in both, Gradle's mergeNativeLibs task aborts + // with "N files found with path 'lib//libc++_shared.so'" because AGP refuses to silently + // choose between duplicate native libraries (the right default for most .so files). + // + // libc++_shared.so is a documented exception: the NDK has held strict ABI compatibility on it + // since r17, so whichever copy wins input ordering, every consumer that linked against libc++_shared + // will work against it. pickFirsts is the narrowly-scoped escape hatch for exactly this case -- it + // only opens a hole for the matching glob; any other future duplicate-native-lib conflict still fails loudly. + pickFirsts += listOf("**/libc++_shared.so") } } diff --git a/website/docs/updates/release-notes.md b/website/docs/updates/release-notes.md index 329edee14f..b129946a39 100644 --- a/website/docs/updates/release-notes.md +++ b/website/docs/updates/release-notes.md @@ -8,8 +8,14 @@ This page links release announcements, changelogs, and migration notes for Flet ## Stable releases +### 0.86.x + +- 0.86.0: [Announcement](/blog/flet-v-0-86-release-announcement), [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0860) + ### 0.85.x +- 0.85.3: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0853) +- 0.85.2: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0852) - 0.85.1: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0851) - 0.85.0: [Announcement](/blog/flet-v-0-85-release-announcement), [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0850), [Breaking changes and deprecations](breaking-changes/index.md#released-in-flet-0850) @@ -213,12 +219,14 @@ This page links release announcements, changelogs, and migration notes for Flet - 0.1.56: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0156) - 0.1.55: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0155) - 0.1.54: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0154) +- 0.1.53: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0153) - 0.1.52: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0152) - 0.1.51: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0151) - 0.1.50: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0150-1) - 0.1.49: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0149) - 0.1.48: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0148) - 0.1.47: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0147) +- 0.1.46: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0146) - 0.1.43: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0143) - 0.1.42: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0142) - 0.1.41: [Changelog](https://github.com/flet-dev/flet/blob/main/CHANGELOG.md#0141)