簡體   English   中英

Xamarin 外部圖片不顯示問題

[英]Xamarin external image not displaying problem

我正在嘗試將圖像添加到 Visual Studio 2019 上的 Xamarin 項目。圖像顯示來自本地存儲,但來自外部鏈接。 我需要能夠顯示圖像 url 中的圖像。

我嘗試過的:

在 android api 27,28 上構建應用程序
ssl 實現的檢查選項是 Native TLS 1.2+
更改站點 ssl 狀態 http,https。
更改來自不同站點的圖像和圖像 url。
另一個圖像擴展 jpg,jpeg,png,...
在 50 kb 和 3mb 之間更改圖像大小。

當我卸載並重建應用程序時,在第一次運行應用程序時會拋出此錯誤:

Image Loading: Error getting stream for https://p-valid.com/images/logo.png:
System.ObjectDisposedException:

在我看來,這個錯誤是Xamarin中的一個bug。

將此代碼添加到 AndroidManifest.xml

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

只有當我將圖像放入可繪制文件夾然后通過其名稱獲取圖像時圖像才會顯示:

var image = new Image { Source =  "test.jpg"};

我的主要代碼是:

var layout = new StackLayout { Padding = new Thickness(5, 10) };

var label = new Label { Text = "Hello world" };
var image = new Image { 
            Source = ImageSource.FromUri(new Uri("http://mydatabase/test.jpg"))
};

layout.Children.Add(label);
layout.Children.Add(image);

this.Content = layout;

我對這段代碼的期望是:
編寫 Hello world 然后顯示圖像

但它只顯示 Hello world 並且沒有圖像。
同樣在調試 output 控制台上寫入此錯誤:

ImageLoaderSourceHandler: Could not retrieve image or image data was invalid: Uri http://mydatabase/test.jpg

在我看來,這段代碼是關於錯誤緩存圖像數據的。

一開始,新創建的項目關於 xamarin forms 的版本是4.2 但是,它會發生錯誤:

[0:] ImageLoaderSourceHandler:無法檢索圖像或圖像數據無效:Uri: https://aka.ms/campus.jpg

但是在項目中檢查了最新版本的 Xamarin Forms之后。 您可以將其更新到最新版本: 4.3.0.908675以檢查是否存在此問題。 更新后,它工作。

新的 crested 項目中的代碼沒有問題,如下所示:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        var layout = new StackLayout { Padding = new Thickness(5, 10) };

        var label = new Label { Text = "Hello world" };
        var image = new Image
        {
            Source = ImageSource.FromUri(new Uri("https://s2.ax1x.com/2019/10/28/K6KUo9.png")),
            BackgroundColor = Color.Accent
        };

        layout.Children.Add(label);
        layout.Children.Add(image);

        Content = layout;
    }
}

添加權限需要在manifest中添加:

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

影響:

在此處輸入圖像描述

注意:最好不要加載大尺寸的圖像。 它也會導致錯誤加載。

我遇到了同樣的問題並在這里找到了解決方案:https://doumer.me/resolve-image-loading-error-in-xamarin.forms/

右鍵單擊您的 android 項目

Select 屬性

Go 至 Android 選項

單擊高級按鈕

將 HTTPClient 更改為托管

將 SSL/TLS 實現更改為本機 TLS 1.2+

保存更改並運行您的項目。

來自 Uri 的圖像現在將加載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM