Flutter  打包Android动态库问题

680 阅读1分钟

首先直奔主题:

遇到状况:Flutter 前端  集成包含***.so动态库的AAR

AAR更新Flutter运行时发生***.so not fond 异常

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.XXX.XXX--XXX==/base.apk"],nativeLibraryDirectories=[/data/app/com.XXX.XXX--XXX==/lib/arm64, /data/app/com.XXX.XXX--XXX==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]] couldn't find "***.so"

Debug发现:

更AAR新后 Android原生打包的apk中包含全部cpu架构的 ***.so文件

更AAR新后 flutter 打包丢失了对应文件

解决方法:

把更新后的AAR引入flutter项目之后需要执行 sync build.gradle操作 同步aar版本

(我采用 先注释掉相关引用编译项目 再解注运行 同步)

求解答

虽然问题解决了,但楼主还是不太明白其中的原理希望有对flutter打包Android和AS的区别能帮忙解释一下这个原因。

二来记录一下踩坑,自己和兄弟们以后用得到。