couldn't find "libflutter.so" 问题分析

Flutter1.5.4暂时不支持打同时支持32和64位的包,后面这个问题可能会解决。

  • flutter build apkflutter build apk --target-platform android-arm:只打32位包。即libflutter.so只会被放在armeabi-v7a目录下。
  • flutter build apk --target-platform android-arm64:只打64位包。即libflutter.so只会被放在arm64-v8a目录下。

由此引发的一个问题:比如使用科大讯飞语音库,通常会在armeabi-v7a、arm64-v8a目录下同时放入libmsc.so(科大讯飞的动态库),假设我们打的是32位包,那么libflutter.so就只会被放在armeabi-v7a目录下。这样的话,如果app运行于64位cpu的手机上,那么因为存在arm64-v8a目录,系统会认为此app是64位的,因此当需要用到libflutter.so时就只会去arm64-v8a目录下找,而arm64-v8a目录下并没有libflutter.so,于是就是会报找不到libflutter.so的错误,并且闪退。

如果app中没有arm64-v8a目录,那么app会运行在32位模式下(64位cpu也支持运行32位程序),那么反而不会有问题。

临时解决办法:删除arm64-v8a目录。

发布了46 篇原创文章 · 获赞 38 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/al4fun/article/details/95855401