flutter Image.network 无法发布 apk

flutter Image.network not working on release apk

遇到奇怪的问题。如果我在模拟器中 运行 应用程序,工作正常。如果我通过连接 android 设备安装应用程序就可以正常工作。但是,如果我通过 flutter build apk 制作 apk 并安装在设备中。

网络图片不来?为什么?有什么问题吗?无需提供代码。对于显示网络图像,我使用简单的 Image.network 和来自 google 图像的 url。

我试过 flutter clean 然后 flutter build apk --release 但同样的问题来了

NOT WORKING BY 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).

WORKING BY DEBUG 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 添加一些权限吗?

是的,将这些权限添加到 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" />

在调试模式下服务扩展和多重权限默认开启(在flutter中)

由于您处于发布模式,因此您必须在 androidmanifest.xml 中手动添加互联网权限。(就像您在本机开发中添加它一样)

导航至 android-> app-> src-> main-> AndroidManifest.xml 并将此行添加到应用程序范围之外。

 <uses-permission android:name="android.permission.INTERNET" />

打开你的

android/app/src/main/AndroidManifest.xml

</application>之后 添加此 android 权限

<uses-permission android:name="android.permission.INTERNET" />

现在,发布你的 apk,然后检查。

只需将此添加到您的 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.INTERNET" />

AndroidManifest.xml路径:

android/app/src/main/AndroidManifest.xml

只是需要INTERNET

的权限

Debug模式下我们不会遇到这个问题,因为已经有permission了。

走正路

android/app/src/main/AndroidManifest.xml

然后将此行粘贴到 <manifest> 标签中:

<uses-permission android:name="android.permission.INTERNET"/>