Listview Xamarin PCL项目崩溃,android除外,但适用于windows phone
我已经创建了一个Xamarin PCL应用程序。我请求RESTAPI并将数据绑定到listview。它在Windows phone中正常工作。但安卓系统出现了一个例外。异常消息为“发生了未处理的异常!” 我的Xaml文件和Xaml.cs文件的代码如下所示 Xaml.CsListview Xamarin PCL项目崩溃,android除外,但适用于windows phone,listview,xamarin.forms,Listview,Xamarin.forms,我已经创建了一个Xamarin PCL应用程序。我请求RESTAPI并将数据绑定到listview。它在Windows phone中正常工作。但安卓系统出现了一个例外。异常消息为“发生了未处理的异常!” 我的Xaml文件和Xaml.cs文件的代码如下所示 Xaml.Cs public class ItemClass { public string ItemCode { get; set; } public string ItemDesc { get; set; } } pub
public class ItemClass
{
public string ItemCode { get; set; }
public string ItemDesc { get; set; }
}
public partial class HomePageSingle : ContentPage
{
private const string WebServiceUrl ="http://localhost:49452/api/Items/";
public async void GetItemsAsync()
{
//var httpClient = new HttpClient();
var httpClient = new HttpClient(new NativeMessageHandler());
var json = await httpClient.GetStringAsync(WebServiceUrl);
List<ItemClass> taskModels =JsonConvert.DeserializeObject<List<ItemClass>>(json);
lstItems1.ItemsSource = taskModels;
}
public HomePageSingle()
{
InitializeComponent();
GetItemsAsync();
}
公共类ItemClass
{
公共字符串ItemCode{get;set;}
公共字符串ItemDesc{get;set;}
}
公共部分类HomePageSingle:ContentPage
{
私有常量字符串WebServiceUrl=”http://localhost:49452/api/Items/";
公共异步void GetItemsAsync()
{
//var httpClient=新的httpClient();
var httpClient=newhttpclient(new NativeMessageHandler());
var json=await-httpClient.GetStringAsync(WebServiceUrl);
List taskModels=JsonConvert.DeserializeObject(json);
lstItems1.ItemsSource=任务模型;
}
公共主页单一()
{
初始化组件();
GetItemsAsync();
}
XAML
<ListView x:Name="lstItems1">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding ItemCode}" TextColor="Black" />
<Label Text="{Binding ItemDesc}" TextColor="Black"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
========================================================================
我放置了一个try/catch,发现抛出异常的不是我的代码,而是Resource.Designer.cs文件。该文件中有一个函数,如下所示:
公共静态void UpdateIdValues()
{
全局::ModernHttpClient.Resource.String.library_name=全局::MyFirstDbApp.Droid.Resource.String.library_name;全局::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize=global::MyFirstDbApp.Droid.Resource.Attribute.actionBarSize;
}
我的代码多次循环到此函数并引发未处理的异常。无法在其中插入try/catch。
请提供帮助。检查您的Android设备/仿真器是否可以访问此Url:在我看来似乎没有。异常消息可能有更多内容,请提供更多详细信息。如@apineda所述,请检查您是否可以访问此Url(从仿真器浏览器)另外,请检查您是否已在Android项目上安装了包含
NativeMessageHandler
类的NuGet软件包。很抱歉,我如何检查我的Android emulator是否可以访问url?我不需要在windows上检查任何类似的内容。是的,我已添加NuGet软件包“modernhttpclient”对于NativeMessageHandlera,请添加一个Try/Catch,以便您可以在emulator浏览器中查看stacktraceGo并尝试访问localhost URL。或者通过访问任何内容来检查is是否具有网络/互联网访问权限。检查您的Android设备/emulator是否具有访问此URL的权限:我觉得它没有。可能还有更多例外消息,请提供更多详细信息。如@apineda所述,请检查您是否可以访问URL(从emulator浏览器)另外,请检查您是否已在Android项目上安装了包含NativeMessageHandler
类的NuGet软件包。很抱歉,我如何检查我的Android emulator是否可以访问url?我不需要在windows上检查任何类似的内容。是的,我已添加NuGet软件包“modernhttpclient”对于NativeMessageHandlera,请添加一个Try/Catch,以便您可以在emulator浏览器中查看stacktraceGo并尝试访问本地主机URL。或者通过转到任何内容来检查is是否具有网络/internet访问权限。