Flutter 记录在Android9 系统中无法加载出图像的问题

525 阅读2分钟

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

然后百度出答案 答案连接

image.png

又回到这个属性这里来了,可我明明已经设置过了
最后还是看出了端倪: 这两个属性是加在了activity里,没有在application中。。。

后来换到application中,运行,图片显示出来了,搞定

真是一次漫长的解决问题的过程,同时因为自己粗心大意,浪费了这么多的时间,希望自己以后吸取教训,写代码做事都能细心一点。