颤动的 Image.network 无法在发布 apk 上运行
Posted
技术标签:
【中文标题】颤动的 Image.network 无法在发布 apk 上运行【英文标题】:flutter Image.network not working on release apk 【发布时间】:2019-07-24 03:28:52 【问题描述】:遇到奇怪的问题。如果我在模拟器中运行应用程序,工作正常。如果我通过连接 android 设备安装应用程序工作正常。但是,如果我通过flutter build apk
制作了 apk 并安装在设备中。
网络图片不来了?为什么?有什么问题吗?无需提供代码。对于显示网络图片,我使用简单的Image.network
和来自谷歌图片的网址。
我尝试了flutter clean
然后flutter build apk --release
但同样的问题来了
不能通过发布 APK 工作:
Uer-MacBook-Air:AppName user$ flutter build apk --release
Initializing gradle... 2.0s
Resolving dependencies... 3.1s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 63.4s
Built build/app/outputs/apk/release/app-release.apk (8.1MB).
通过调试 APK 工作
Uer-MacBook-Air:AppName user$ flutter build apk --debug
Initializing gradle... 3.5s
Resolving dependencies... 5.5s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done 36.2s
Built build/app/outputs/apk/debug/app-debug.apk.
有人遇到过这种问题吗?我已经通过flutter build apk
安装了许多 apk,并且工作正常,现在无法在发布模式下工作?但是当我尝试使用调试模式flutter build apk --debug
时,它工作正常意味着图像正在显示?
我必须为发布模式 apk 添加一些权限吗?
【问题讨论】:
不是在所有安卓版本中都可以使用吗? 只有图片不工作? 【参考方案1】:是的,将这些权限添加到 AndroidManifest.xml 就可以了
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
更新:只有 INTERNET 权限就足够了
<uses-permission android:name="android.permission.INTERNET" />
【讨论】:
只有在调试模式下默认启用服务扩展和多个权限(在颤振中)
由于您处于发布模式,您必须手动在 androidmanifest.xml 中添加互联网权限。(就像您在本机开发中添加它一样)
导航到 android-> app-> src-> main-> AndroidManifest.xml 并将这一行添加到应用程序范围之外。
<uses-permission android:name="android.permission.INTERNET" />
【讨论】:
我也应该把权限放在 main 中吗?我已将权限放入配置文件 androidmanifest【参考方案3】:打开你的
android/app/src/main/AndroidManifest.xml
</application>
之后
添加这个android权限
<uses-permission android:name="android.permission.INTERNET" />
现在,发布您的 apk,然后检查。
【讨论】:
【参考方案4】:只需要给INTERNET
的权限
在 Debug
模式下我们不会遇到这个问题,因为已经给出了permission
。
只要去路径
android/app/src/main/AndroidManifest.xml
然后将这一行粘贴到<manifest>
标签中:
<uses-permission android:name="android.permission.INTERNET"/>
【讨论】:
【参考方案5】:只需将其添加到您的 AndroidManifest.xml
文件中即可:
<uses-permission android:name="android.permission.INTERNET" />
AndroidManifest.xml
路径:
android/app/src/main/AndroidManifest.xml
【讨论】:
以上是关于颤动的 Image.network 无法在发布 apk 上运行的主要内容,如果未能解决你的问题,请参考以下文章
如何在颤动中为 CachedNetworkImage 编写小部件测试
Flutter:为啥 Image.network 无法加载图像