New
v0.1.43 - Fix Android CLASSIFY task: ensure FloatArray compatibility (Issue #413 follow-up) (#418)
π Summary (single-line synopsis)
v0.1.43 makes YOLO classification outputs consistent across Android + iOS (matching Ultralytics Results.summary()), and fixes an Android CLASSIFY build/runtime edge case caused by FloatArray handling. β
π±
π Key Changes
- π§© (PR #418, highest priority) Fix Android CLASSIFY
FloatArraycompatibility- Ensures
top5Confsworks with Kotlinzip()by converting to a List (.toList()), preventing build breaks on some Android/Kotlin configurations. - Restores a helpful warning log when
yoloResult.probsis null, improving on-device debugging.
- Ensures
- π Unified classification result format across platforms (Android + iOS + Dart)
- Classification output now follows the official Ultralytics
Results.summary()style:classification: { name, class, confidence, top5 }
- Replaces older keys like
topClass,topConfidence, etc., with a consistent schema.
- Classification output now follows the official Ultralytics
- π οΈ Android NDK + C++ build compatibility improvements (PR #410)
- Makes NDK version configurable (uses host app property if provided, otherwise defaults to a known-good NDK).
- Standardizes native build settings to C++17, enabling exceptions/RTTI more reliably across environments.
- π€ CI maintenance (PRs #411, #412)
- Updates GitHub Actions artifact upload/download steps to newer major versions (Node.js 24 runtime).
π― Purpose & Impact
- π¦ Fewer Android build surprises for classification apps
- If you use CLASSIFY (e.g.,
yolo11n-cls) on Android, this reduces the chance of βworks on my machineβ build failures due to primitive array types.
- If you use CLASSIFY (e.g.,
- π More predictable cross-platform integration
- Apps consuming results from both Android and iOS can now rely on the same classification keys (
name/class/confidence/top5), simplifying UI rendering and analytics.
- Apps consuming results from both Android and iOS can now rely on the same classification keys (
- π Better diagnosability when CLASSIFY fails on-device
- The restored warning log helps identify cases where probability outputs are missing instead of failing silently.
- βοΈ Improved native stability for Android builds
- More consistent NDK/C++ configuration reduces linker/config issues when embedding the plugin into different Flutter host apps.
Helpful references:
- PR #418: Fix Android CLASSIFY FloatArray compatibility
- Issue #413: Android CLASSIFY task follow-up
- PR #410: NDK version handling and C++ standard compatibility
- Ultralytics Results docs: Results.summary() reference
What's Changed
- fix: π update NDK version handling and C++ standard settings for compatibility by @onuralpszr in https://github.com/ultralytics/yolo-flutter-app/pull/410
- chore(deps): bump actions/upload-artifact from 5 to 6 in /.github/workflows by @dependabot[bot] in https://github.com/ultralytics/yolo-flutter-app/pull/412
- chore(deps): bump actions/download-artifact from 6 to 7 in /.github/workflows by @dependabot[bot] in https://github.com/ultralytics/yolo-flutter-app/pull/411
- Fix Android CLASSIFY task: ensure FloatArray compatibility (Issue #413 follow-up) by @dmjtian in https://github.com/ultralytics/yolo-flutter-app/pull/418
New Contributors
- @dmjtian made their first contribution in https://github.com/ultralytics/yolo-flutter-app/pull/418
Full Changelog: https://github.com/ultralytics/yolo-flutter-app/compare/v0.1.42...v0.1.43