关于flutter项目中遇到的问题总结

352 阅读2分钟

因为原来的我一直是ios开发者,对flutter不是很了解,经过这次公司的项目后,我觉得flutter这门语言,不,我更深层次的认为,flutter就像一个UI框架,让开发者开发的很便利,有hot模式让速度变的更快,运行编译速度也很不错。缺点的话,就像我在本次项目中,基本都是和原生平台通信之间遇到的问题,更准确的是我不太熟悉android,导致在原生安卓中,让我脑袋很痛苦,但幸好最终也是完成。在期间,我会在github上一个一个的看issue,在stackover上搜索相关的问题(因为英语水平不好,看着很是痛苦),就这样遇到一个问题解决一个问题。所以也在写完项目之后,来这上面来总结问题。方便下次忘记了,就上来看看。当然能百度到的解决方式,我就不会写了,只写自己遇到无法搜索的问题。

1.flutter dlopen failed: library "xx.so" not found

出现场景:

  • 我出现这个bug的场景主要是在,在flutter插件里面写通信方法时,运行调用第三方jar包和so文件时出现此类bug,出现这个问题时,我第一时间想到的是没有打包到apk里面,但显然是有打进去的,显然不是这个原因造成的,所以百度和google很久,尝试了很多办法,都没有找到解决方式,但在一篇文章里面看到了,需要初始化sdk,所以我想到了解决方法。

解决办法:

  • 在flutter插件中的android下面的main方法里的插件java基类的onAttachedToEngine里面初始化第三方sdk,因此解决。

2.在flutter项目中引用flutter plugin时,找不到plugin的方法

解决方法:

  • pubspec.yaml下添加本地插件依赖
xx_plugin:
 path: ../plugin

3.调用第三方sdk方法时,程序闪退

解决方法:

  • 和第三方提供支持的人员进行沟通后,最后对方重新发最新版本的sdk,发现是第三方版本问题。在项目中更换之后,程序正常运行,无闪退

4.项目使用flutter插件后,打包之后lib文件夹下没有第三方so文件

解决方法:

  • 暴力解决方法,直接复制第三方sdk有关so文件和jar包到flutter项目中,然后在打包,lib下面存在。
  • 如果有更好的解决方法请告诉我,因为我也一直在找更好的方法来解决此类问题。