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步骤:

  1. 添加依赖:flutter pub add mmkv
  2. 初始化:MMKV.initialize()
  3. 使用: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 进行数据存储。

回到顶部