Dart 无法使用image.network从internet渲染/显示颤振图像

Dart 无法使用image.network从internet渲染/显示颤振图像,dart,flutter,flutter-image,Dart,Flutter,Flutter Image,使用颤振图像时,我面临一个问题。我可以从我的设备渲染图像,但不能从Internet渲染图像 我必须提到,我将代码放在androidManifest文件中也是为了获得互联网的许可 但它不起作用。以下是我在颤振文档中的代码: import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget bui

使用
颤振图像时,我面临一个问题。我可以从我的设备渲染图像,但不能从Internet渲染图像

我必须提到,我将代码放在androidManifest文件中也是为了获得互联网的许可

但它不起作用。以下是我在颤振文档中的代码:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var title = 'Web Images';

    return MaterialApp(
      title: title,
      home: Scaffold(
        appBar: AppBar(
          title: Text(title),
        ),
        body: Image.network(
          'https://picsum.photos/250?image=9',
        ),
      ),
    );
  }
}
我不明白是什么问题!它不会显示任何错误或抛出任何异常。图像根本不会出现在屏幕上


我需要做些什么才能从互联网或使用url获取图像?

我已经测试了你的代码,它似乎在android emulator和iOS模拟器上都能工作

Android仿真器:

iOS模拟器:

在这个问题上存在着分歧

由于一些解决方法已在评论中提到,如检查
互联网
is

默认的颤振应用程序模板启用对的
互联网
权限 调试/配置文件模式(支持Dart天文台),但不支持 释放模式

您也可以尝试以下方法:

  • 检查计算机中DNS的配置。它可能会阻止android仿真器的internet连接
  • 使用不同的设备检查应用程序(例如,物理android设备,因为它在iOS中工作),如果它工作,那么它就是你的计算机或互联网上的某个东西
此外,以下文件中还提到了其他解决办法:

顺便说一句,AndroidManifest.xml显示在两个文件夹中 机器:
android/app/src/profile-android/app/src/debug

确保您在这两个方面都有权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.flloadimage">
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>

这里还有一些其他的东西,看看手机是否有问题。登录到 启动(或插入)设备并ping 网站

应该是这样的

~$ adb shell
generic_x86:/ $ ping picsum.photos
PING picsum.photos (104.37.178.1) 56(84) bytes of data.
64 bytes from 104.37.178.1: icmp_seq=1 ttl=254 time=17.6 ms
64 bytes from 104.37.178.1: icmp_seq=2 ttl=254 time=22.4 ms
^C
--- picsum.photos ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5012ms
rtt min/avg/max/mdev = 13.638/19.442/24.621/3.508 ms
generic_x86:/  <press ctrl-d to exit to your prompt>
~$adb shell
通用_x86:/$ping picsum.photos
PING picsum.photos(104.37.178.1)56(84)字节的数据。
104.37.178.1中的64字节:icmp_seq=1 ttl=254时间=17.6毫秒
104.37.178.1中的64字节:icmp_seq=2 ttl=254时间=22.4毫秒
^C
---picsum.ping统计数据---
发送6个数据包,接收6个,0%数据包丢失,时间5012ms
rtt最小值/平均值/最大值/mdev=13.638/19.442/24.621/3.508毫秒
通用_x86:/
其他想法

  • 尝试其他wifi,如咖啡馆
  • 执行“颤振清理”命令以重建
  • 在另一台计算机上安装

当我运行您的代码时,会显示图像。我认为问题不在你的代码中。你们能不能在终端上试试“颤振清理”,然后再试一次。@Xuzan我会的,若问题解决了,我一定会通知你们。我的AVD或pc可能有任何问题。当我运行Flatter应用程序时,它总是进入应用程序的前一个状态,我需要重新启动应用程序!我检查了密码。您是否在发布模式下运行应用程序,即
flatter run--release
,因此如果是,请签入
AndroidManifest.xml
您可能有错误的internet权限。另外,请确保internet在设备/仿真器上正常工作。@AmolG,我找到了问题所在。不知何故,我的应用程序并没有根据更新的代码在模拟器上运行,每次我热重启时,它都会以以前的代码状态运行。所以我需要重新启动或重新加载两次:(但为什么会发生这种情况?我尝试从emulator卸载应用程序,然后再次运行。但不起作用-我需要重新启动或重新加载两次,才能根据我的代码看到更新的结果。奇怪!!!