简体   繁体   中英

flutter Image.network not working on release apk

Getting weird issue. If I run app in simulator, works fine. If I installed app by connecting android device works fine. But if I made apk by flutter build apk and installed in device.

Network image not coming? Why? any thing is going wrong? No need to provide code. For display network image, I'm using simple Image.network with url from google image.

I have tried with flutter clean and then flutter build apk --release but same issue coming

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.

Anybody has faced this type of issue? I have installed many apk by flutter build apk and that was work fine and right now not working in release mode? But when I tried with debug mode flutter build apk --debug its working fine means images are displaying?

What I have to add some permission for release mode apk?

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" />

Updated: only INTERNET permission is enough

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

In debug mode service extension and multiple permissions are enabled by default(in flutter)

as you are in release mode you have to add internet permission in androidmanifest.xml manually.( Just like you add it in native development)

navigate to android-> app-> src-> main-> AndroidManifest.xml and add this line outside of application scope.

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

Open your

android/app/src/main/AndroidManifest.xml

and after </application> add this android permission

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

now, release your apk, and check.

Simply just you need to give permission of INTERNET

In Debug mode we do not face this problem because there's already permission is given.

Just go to the path

android/app/src/main/AndroidManifest.xml

Then paste this line in <manifest> tag:

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

在此处输入图片说明

Just add this in your AndroidManifest.xml file:

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

AndroidManifest.xml path:

android/app/src/main/AndroidManifest.xml

显然,上面绿色的答案是最好的答案,但是您可以使用权限库,这也是最简单的答案,您只需跟随链接即可: https ://pub.dev/packages/permission

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM