flutter如何集成和使用MMKV
在Flutter项目中如何集成和使用MMKV?我尝试通过flutter_mmkv插件进行集成,但在Android端遇到原生库初始化失败的问题,iOS端虽然能编译通过但读取数据返回null。具体表现为:1) Android报java.lang.UnsatisfiedLinkError;2) iOS端MMKV.defaultMMKV()能获取实例但getString()始终返回空值。已确认执行了MMKV.initialize()且路径权限正常。请问正确的集成步骤是什么?是否需要额外配置Android的CMakeLists.txt或iOS的Podfile?
2 回复
Flutter集成MMKV步骤:
- 添加依赖:
flutter pub add mmkv - 初始化:
MMKV.initialize() - 使用:
MMKV.defaultMMKV().encodeString('key', 'value')
获取数据:MMKV.defaultMMKV().decodeString('key')
更多关于flutter如何集成和使用MMKV的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中集成和使用 MMKV(高效键值存储库)的步骤如下:
1. 添加依赖
在 pubspec.yaml 中添加依赖:
dependencies:
mmkv_flutter: ^2.4.1 # 使用最新版本
运行 flutter pub get 安装。
2. 初始化 MMKV
在 main.dart 中初始化:
import 'package:mmkv_flutter/mmkv_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await MMKVFlutter.init(); // 初始化 MMKV
runApp(MyApp());
}
3. 基本使用
// 获取默认实例
MMKV mmkv = MMKV.defaultMMKV();
// 存储数据
mmkv.encodeString('key_string', 'Hello MMKV');
mmkv.encodeBool('key_bool', true);
mmkv.encodeInt('key_int', 123);
mmkv.encodeDouble('key_double', 3.14);
// 读取数据
String? stringValue = mmkv.decodeString('key_string');
bool? boolValue = mmkv.decodeBool('key_bool');
int? intValue = mmkv.decodeInt('key_int');
double? doubleValue = mmkv.decodeDouble('key_double');
// 删除数据
mmkv.removeValue('key_string');
// 清空所有数据
mmkv.clearAll();
4. 多实例支持
// 创建不同 ID 的实例
MMKV mmkvWithId = MMKV('custom_id');
5. 加密支持(可选)
MMKV mmkvEncrypted = MMKV.encryptMMKV('encrypted_id', 'your_crypt_key');
注意事项:
- MMKV 支持跨平台(Android/iOS),性能优于 SharedPreferences。
- 数据自动异步存储,无需手动保存。
- 支持监听数据变化(通过
addOnDataChangedListener)。
通过以上步骤,即可在 Flutter 中高效使用 MMKV 进行数据存储。

