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卸载应用程序,然后再次运行。但不起作用-我需要重新启动或重新加载两次,才能根据我的代码看到更新的结果。奇怪!!!