扑Image.network不适用于发行版apk

Gov*_*iyo 10 android apk dart flutter

越来越奇怪的问题。如果我在模拟器中运行应用程序,则工作正常。如果我通过连接android设备安装了应用,效果很好。但是,如果我通过apk制作flutter build apk并安装在设备中。

网络映像无法显示?为什么?有什么问题吗?无需提供代码。对于展示广告网络图片,我使用的是Image.network来自Google图片的简单网址。

我试过了flutter cleanflutter 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).
Run Code Online (Sandbox Code Playgroud)

通过调试工作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.
Run Code Online (Sandbox Code Playgroud)

有人遇到过这类问题吗?我已经安装了许多APK,flutter build apk并且工作正常,现在无法在发布模式下工作?但是,当我尝试使用调试模式时,flutter build apk --debug它的正常工作意味着正在显示图像吗?

我必须为发布模式apk添加一些权限吗?

Lon*_*han 17

Yes, add these permissions to AndroidManifest.xml and it will work

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

Updated: only INTERNET permission is enough

<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

  • 仅 &lt;uses-permission android:name="android.permission.INTERNET" /&gt; 就足够了。谢谢 (2认同)

sud*_*esh 13

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

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

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

 <uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)


小智 8

打开你的

android/app/src/main/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

并在</application> 添加此 android 权限后

<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

现在,释放您的 apk,然后检查。


Roh*_*iya 7

只需您需要授予许可INTERNET

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

只要走那条路

android/app/src/main/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

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

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述