【问题标题】:Xamarin Forms: Remote Images don't load on AndroidXamarin Forms:远程图像无法在 Android 上加载
【发布时间】:2020-02-16 21:04:36
【问题描述】:

我一直在玩 Xamarin Forms,我创建了一个使用 themoviedb api 的简单应用程序,它在 ListView 控件中显示电影列表,非常简单。我离开了几个星期,昨天我试了一下,我注意到 Android 模拟器中的图像永远不会出现,与物理设备一样,我唯一的差异是我用 VS2017 创建了项目,现在我用它打开它VS2019(社区版),谷歌搜索我看到一些帖子(虽然很少)指出问题是 https 图像和 HttpClient 配置,我检查了一切看起来都很好开箱即用

我测试了许多其他的东西,例如使用简单的图像创建一个全新的项目,尝试在同一个应用中使用不同的图像,但没有成功,我在 iOS 中测试了应用,一切看起来都正确。\

该应用只有 1 个页面,这是它的 XAML: https://github.com/olman21/xamarin-movies/blob/master/Xamarin.Movies/Xamarin.Movies/Views/SearchMoviePage.xaml

图像 XAML

<Image Source="{Binding BackdropPath, Converter={StaticResource movieDbImageConverter}}"
                               Aspect="AspectFill"
                               HeightRequest="160"
                               Grid.Row="0"/>

movieDbImageConverter

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var imageName = value as string;
        if (imageName == null) return string.Empty;

        return ImageSource.FromUri(new Uri($"{internalSettings.MovieDbImageBaseUrl}/{imageName}"));
    }

这是完整的回购:https://github.com/olman21/xamarin-movies

任何帮助将不胜感激!

【问题讨论】:

  • 您查看 xamarin 日志\logcat 错误了吗?
  • 它只在安卓上吗?你能在这里发布有问题的 XAML 吗?您在尝试之前是否更新了 Xamarin nuget 包?
  • 您是否在 Android 清单中启用了互联网权限?
  • @Oleg 我在哪里可以查看这些日志?
  • 尝试调试MovieDbImageConverter.cs,出断点进入Convert函数。

标签: c# android xamarin xamarin.forms


【解决方案1】:

这就是问题所在,我想通了。

new Uri($"{internalSettings.MovieDbImageBaseUrl}/{imageName}"); 更改为

new Uri($"{internalSettings.MovieDbImageBaseUrl}{imageName}");

前网址是 https://image.tmdb.org/t/p/w500/nRXO2SnOA75OsWhNhXstHB8ZmI3.jpg 不是 https://image.tmdb.org/t/p/w500//nRXO2SnOA75OsWhNhXstHB8ZmI3.jpg

浏览器明白 Android 操作系统不会。

【讨论】:

  • 你是完全正确的,很可能是 The Movie Db API 改变了在名称的开头添加斜杠,我完全误读了它并假设 URL 是正确的,因为浏览器向我显示图片,一个令人尴尬的菜鸟错误,非常感谢您抽出时间并引导我解决问题。
  • 另外,我创建了一个测试项目,只是一个带有静态源的图像,它在物理设备中运行良好,但在模拟器中运行良好(这就是我一开始丢弃自定义转换器的原因),它是Android如何无法加载图像有点令人困惑。 &lt;Image x:Name="image" Source="https://image.tmdb.org/t/p/w500/nRXO2SnOA75OsWhNhXstHB8ZmI3.jpg" /&gt;
猜你喜欢
  • 2018-05-13
  • 1970-01-01
  • 2022-01-20
  • 2017-08-03
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
相关资源
最近更新 更多