- flutter/mmkv/README.md, OpenHarmony/MMKV/README.md: the reKey sample
calls kmmkv.reKey(), but the instance is named mmkv
- OpenHarmony/MMKV/README.md: the TypedArray sample calls
kv.decodeUint8Array() on an undefined kv; use mmkv
- OpenHarmony/MMKV/README.md: AES-258 -> AES-256
- CONTRIBUTING.md: accecpt -> accept, Additionly -> Additionally
The published com.tencent:mmkv AAR ships native libs for arm64-v8a and
x86_64 only. On an armeabi-v7a / x86 device onAttachedToEngine() throws
UnsatisfiedLinkError from loadLibrary() before `channel` is assigned. The
engine keeps running, but on activity destroy
FlutterEngineConnectionRegistry.removeAll() calls onDetachedFromEngine()
unconditionally -> channel.setMethodCallHandler(null) -> NullPointerException
-> "Unable to destroy activity" -> fatal crash on every app exit for that
whole ABI class.
- Catch the load failure so `channel` is still registered (MMKV method
calls then fail gracefully through the existing FFI path).
- Null-guard onDetachedFromEngine().
Move source files from darwin/Classes/ to the SPM-compatible layout
under darwin/mmkv_ios/Sources/mmkv_ios/. Add Package.swift with MMKV
dependency from GitHub. Update podspec paths so CocoaPods still works
as a fallback.
Replace 4 separate static function pointers (LogHandler, ErrorHandler,
ContentChangeHandler, ContentLoadedHandler) with a single MMKVHandler
abstract class in Core C++. Update all 6 platform wrappers (iOS, Android,
OHOS, Python, Golang, Flutter) to use adapter classes bridging to the new
unified handler. Add onMMKVContentLoadSuccessfully callback to Android,
OHOS, Flutter, Python and Golang where it was previously missing.