集成flutter过程中遇到个问题,卡了很久,就是在打完包以后,发现 无法将flutter的产物(debug模式使用JIT 方式编译代码,solate_snapshot_data、vm_snapshot_data、isolate_snapshot_instr、vm_snapshot_instr被放置在assets中,而Release采用 AOT 模式,上述文件会被打成.so文件(android),以上文件是相应指令以及flutter数据,https://allenwu.itscoder.com/flutter-compile-product
)打进apk中,以至于无法打开flutter的页面,但是切到flutter目录中,执行./gradlew assembleDebug,生成的aar包确有相应产物,说明产物是有的,只是没有被打进apk包里面。
终究在github上有解决方案。
https://github.com/flutter/flutter/pull/27154
我理解是flutter 默认的主module名是‘app’,如果当前项目主module名不是‘app’,那就找不到目录,无法将相应产物打进apk中。
所以,只要将setting.gradle中
setBinding(new Binding([gradle: this]))
改成
setBinding(new Binding([gradle: this, mainModuleName: '主module名']))即可
网友评论