Flutter 解决运行时错误 java.lang.UnsatisfiedLinkError...couldn't find "libflutter.so"

集成融云的时候,运行时报错 couldn't find "libflutter.so"

简单的说就是没有找到 flutter.so的库,为什么会这样子呢?因为我在集成融云的时候,有指明使用,很多的so库:

但实际和flutter一起打包编译的时候,flutter并没有每个平台都编译成flutter.so的库,所以实际运行的时候,就会出错。

解决方案:

  1. 打开你的 android 工程的主 module(默认是app) 下的 build.gradle
  2. 修改 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"
                }
            }
        } 

 

参考资料:

https://juejin.im/post/5c2260e9e51d45778a5c8cd2

 

posted @ 2019-07-01 17:39  柏。  阅读(3722)  评论(0编辑  收藏  举报