Flutter 解决运行时错误 java.lang.UnsatisfiedLinkError...couldn't find "libflutter.so"
集成融云的时候,运行时报错 couldn't find "libflutter.so"
简单的说就是没有找到 flutter.so的库,为什么会这样子呢?因为我在集成融云的时候,有指明使用,很多的so库:
但实际和flutter一起打包编译的时候,flutter并没有每个平台都编译成flutter.so的库,所以实际运行的时候,就会出错。
解决方案:
- 打开你的 android 工程的主 module(默认是app) 下的
build.gradle
- 修改
abiFilters
字段, 只指定单一架构. 针对手机的应用推荐使用"armeabi-v7a"
; 针对平板的应用推荐使用x86
开发小技巧:如何在android studio中直接查看打包的apk libs下是否有so库:Bulid -> Analyze APK
实际测试了一下:一个空的flutter的项目,debug包:
release包:
更改配置:
buildTypes {
debug {
ndk {
abiFilters "x86","x86_64","arm64-v8a"
}
}
release {
ndk {
abiFilters "armeabi-v7a"
}
}
}
参考资料: