- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在摆弄 MonoDroid(又名 Android 版 Mono),试图构建一个简单的播客下载应用程序,目前只是测试 RSS 提要内容的检索。
我的简单应用是:
当用户点击下载时,我获取 RSS 内容,当前使用 XDocument
(我也试过 just WebRequest
/ Stream
s etc. ),这是简短的版本:
void button_Click(object sender, EventArgs e)
{
output.Text += "user input: " + rssUriInput.Text + "\n";
try
{
output.Text += "### document ###";
output.Text += XDocument.Load(rssUriInput.Text).ToString();
output.Text += "### document ###";
}
catch (Exception ex)
{
output.Text += "OOOPS something went wrong:\n" + ex.ToString();
}
}
我尝试了几种方法,但一直收到 ObjectDisposedException
当我做的时候 XDocument.Load(/*my uri here*/);
我的 AssemblyInfo.cs 包括
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
现在,免责声明,在让 hello world 运行之后我有点自己离开了,所以我可能缺少一些 MonoDroid 基础知识,但是这段代码在普通的 C# 应用程序中工作(我测试过)但是
为什么我在这里做错了?我是否必须做一些特殊的事情才能在 MonoDroid 中使用 xml/linq/网络访问?
这里是完整的事件代码:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Xml.Linq;
namespace RssDownlowd
{
[Activity(Label = "RssDownlowd", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
EditText rssUriInput;
Button button;
TextView output;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.RssDownload);
rssUriInput = FindViewById<EditText>(Resource.Id.rssUriText);
button = FindViewById<Button>(Resource.Id.downloadButton);
output = FindViewById<TextView>(Resource.Id.outputTextView);
button.Click += new EventHandler(button_Click);
}
void button_Click(object sender, EventArgs e)
{
output.Text += "user input: " + rssUriInput.Text + "\n";
try
{
output.Text += "### document ###";
output.Text += XDocument.Load(rssUriInput.Text).ToString();
output.Text += "### document ###";
}
catch (Exception ex)
{
output.Text += "OOOPS something went wrong:\n" + ex.ToString();
}
}
}
}
这里是完整的异常(exception):
"System.ObjectDisposedException: The object was used after being disposed.
at System.Net.WebConnection.BeginRead (System.Net.HttpWebRequest request, System.Byte[] buffer, Int32 offset, Int32 size, System.AsyncCallback cb, System.Object state) [0x00000] in <filename unknown>:0
at System.Net.WebConnectionStream.BeginRead (System.Byte[] buffer, Int32 offset, Int32 size, System.AsyncCallback cb, System.Object state) [0x00000] in <filename unknown>:0
at System.Net.WebConnectionStream.Read (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
at System.Xml.XmlInputStream.Read (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
at System.Xml.NonBlockingStreamReader.ReadBuffer () [0x00000] in <filename unknown>:0
at System.Xml.NonBlockingStreamReader.Read (System.Char[] dest_buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.Xml.XmlStreamReader.Read (System.Char[] dest_buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadTextReader (Int32 remained) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.PeekChar () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadChar () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.Expect (Int32 expected) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadEntityReference (Boolean ignoreEntityReferences) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadReference (Boolean ignoreEntityReferences) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadText (Boolean notWhitespace) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.XmlFilterReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.Linq.XElement.LoadCore (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XNode.ReadFrom (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XContainer.ReadContentFrom (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XElement.LoadCore (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XNode.ReadFrom (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XContainer.ReadContentFrom (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XElement.LoadCore (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XNode.ReadFrom (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XContainer.ReadContentFrom (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XElement.LoadCore (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XNode.ReadFrom (System.Xml.XmlReader r, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XContainer.ReadContentFrom (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XDocument.ReadContent (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XDocument.LoadCore (System.Xml.XmlReader reader, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XDocument.Load (System.String uri, LoadOptions options) [0x00000] in <filename unknown>:0
at System.Xml.Linq.XDocument.Load (System.String uri) [0x00000] in <filename unknown>:0
at RssDownlowd.Activity1.button_Click (System.Object sender, System.EventArgs e) [0x0004a] in C:\\Users\\khd483\\code\\HelloMonoDroid\\RssDownlowd\\Activity1.cs:47 "
最佳答案
奇怪的是,当我尝试你的代码时它工作得很好:
您是否在 Mono for Android 选项的项目中启用了链接?
还可以考虑对 RSS 进行异步下载,因为它会阻塞 UI 线程直到完成,从而使应用无响应。
关于c# - 为 RSS 加载 XDocument 时出现 MonoDroid ObjectDisposedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830651/
Jeffry Richter 说(在 CLR via C# Edition 4, P.534)实现 IDisposable 的类中的所有方法和属性都应该抛出 ObjectDisposedExcepti
我收到以下错误: System.ObjectDisposedException: The ObjectContext instance has been disposed and can no lon
static void Main(string[] args) { Observable.Using(() => new EventLoopScheduler(), els => Observ
我正在使用 Entity Framework 6.x,一个实体看起来像这样(有些简化): public partial class Record { public int Id { get;
我需要在我的面板中添加一个Image,所以我使用以下代码: var image = new Image(); var source = new BitmapImage(); source.BeginI
由于windows phone不能处理gif,所以写了一点方法,但是好像有点错误。 下面的代码在运行到 (JPG 和 PNG 部分)bitimg.SetSource(e.Result) 时总是抛出异常
我在尝试创建用户时遇到错误。我在下面的代码中的 第 15 行 得到了它。 1 public async void AddOrganisationAdmin() 2 { 3 4
我得到了一个有点复杂的 .net 控制台应用程序,它使用 WPF 作为一些通知窗口,也进行一些 http 调用。在极少数情况下,该应用程序会崩溃,而我能够获得的唯一错误消息来自 Windows 事件查
我遇到了一个问题,其中大约有 50% 的时间抛出了 ObjectDisposedException。 try 中的代码(在 finally 中)导致了异常。我不确定如何处理。我可以吃掉异常,如下所示,
当实现 Dispose 模式时,对象的属性应该在对象被释放后抛出 ObjectDisposedException。 如果每个属性和方法在 setter 和 getter 的开头都有一行代码来抛出该异常
我发现有很多关于此问题的条目,但是没有解决方案对我有用。 简而言之,我有一个要在Docker中运行的.net Core 3.1控制台应用程序。如果我在Visual Studio中或通过命令行启动应用程
这是我的代码,不言自明。 using block 终止后 - output 变量被释放。为什么?我想从函数中返回它,处置 StreamWriter 但返回我的对象的正确方法是什么? public
我的应用程序通常在 10-20 个线程上运行,这些线程几乎每秒都会向 GUI 发送事件以更新某些控件。 当用户关闭这些应用程序中间时,与这些事件相关的所有更新都会导致几次随机崩溃。主要是 Object
下面两行代码一行一行执行: this.dataWriter.WriteBytes(message.MessageBuffer); await this.dataWriter.StoreAsync();
有没有办法验证一个 Session 是否已经被 NHibernate 处理掉了? 我在 Session 上有一个包装类,它有自己的 Finalizer 和 IDispoable 实现,但是如果在我自己
我有一个使用 Windows 身份验证和 Elmah 日志记录在 IIS 7 上运行的 MVC 应用程序。 通常当错误发生时,我们会调用类似“logger.LogError”的东西,它是一个包装器:
我有以下 EF 代码优先代码。它工作正常。但是当我查找“club2.Members”的值时,它显示如下: 'club2.Members' threw an exception of type 'Sys
你好,我正在编写一个 ASP.Net MVC 应用程序,我有一个专门用于数据库连接的特殊类。在我的 HomeController 中,我调用这个特殊 DB 类的静态方法,它将所需的数据返回到对象中。我
我有这个类,我经常(但不总是)在使用方法 ExecuteQuery 时得到 NullReferenceException 或 ObjectDisposedException: public class
我正在调试和增强 C#/XAML 程序,该程序在运行时反复生成异常,我可以在“输出”窗口中看到该异常。 System.dll 中发生类型为“System.ObjectDisposedException
我是一名优秀的程序员,十分优秀!