Flutter app完成快结束的时候发现在部分android手机上无法加载出图片的问题,第一步当时是百度查。 第一次查就查到要在AndroidManifest.xml 路径为:
(android/app/src/main/AndroidManifest.xml)
中设置属性:
android:usesCleartextTraffic="true"
在我设置后依然不起作用
然后我就怀疑是不是cachednetworkimage 这个第三方插件加载图片有问题,谷歌之后果然是有问题,有遇到和我相同问题的人,问题连接,说是将flutter app打包成apk之后,部分手机上cachenetworkimage一直卡在placeholder上,加载不出来图片。
然后我先是照着给出的解决办法,先是添加 先是给添加了权限
<manifest xmlns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>
后面又去掉了代码混淆、压缩相关的一些东西
android {
...
buildTypes {
release {
...
shrinkResources false
minifyEnabled false
}
}
}
因为自己身边没有android9系统的手机,只能给别人发包让别人安装测试,别人也很忙,我还得不停的打包让别人测,搞了一个周末问题依然在。
因为网上查到的问题,查到的解决办法都试过了,问题依然还在。
后面戏剧性的一幕来了,在晚上要睡了的时候,我尝试最后一次找找问题出在哪,因为没有android9的测试机,我就想着下载一个google 模拟器吧,刚好是android9 的系统。
运行程序之后报错:
Another exception was thrown: Bad state: Insecure HTTP is not allowed by platform: http://img.rxswift.cn/1623080794/qEQLSPMj.jpeg?imageView2/0/q/40
然后百度出答案 答案连接
又回到这个属性这里来了,可我明明已经设置过了
最后还是看出了端倪:
这两个属性是加在了activity里,没有在application中。。。
后来换到application中,运行,图片显示出来了,搞定
真是一次漫长的解决问题的过程,同时因为自己粗心大意,浪费了这么多的时间,希望自己以后吸取教训,写代码做事都能细心一点。