-
由于工程是Flutter+原生混合开发,并且进入APP的第一个页面(登录页面)就是Flutter页面
-
MMKV官方写法在main()函数里使用await初始化,为了保证即时初始化,然而await 会导致iOS12及以下的系统到登录页会卡死在白屏页(只有在release包下才会这样,原因未知)
-
解决方法:把await去掉(由于第一个Flutter页面没有使用到MMKV,所以可以去掉await,如果有使用到去掉了await可能会引发未初始化就使用的问题)
//业务页面
void main() {
runZoned(() async {//全局异常捕获
// await KVStorage.init(); await 会导致iOS12及以下的系统到登录页会白屏
KVStorage.init();
runApp(MyApp());
DataService.instance.registerEvent();
}, onError: (error, stackTrace) async {
if(error!=null && error.toString().isNotEmpty) {
var errorDetail = FlutterErrorDetails(exception: error, stack: stackTrace)
.toString();
Logger.write(errorDetail);
//回传给native上报error信息
PlatformChannelManager.getMethodChannel().invokeMethod(Method.errorUpload,
FlutterErrorDetails(exception: error, stack: stackTrace).toString());
}
});
}
网友评论