日期:2014-05-20  浏览次数:20928 次

【分享】解决Mono for android的xml编辑器无法代码完成的问题
   这两天在给黑马程序员.Net训练营五期班讲使用.Net开发Android的Mono for android技术(关于这个技术详见http://edu.csdn.net/dotnet/subject/unity3D/index.html ),发现使用的开发工具在停止调试的时候特别卡,能卡上几十秒钟,而且经常弹出报错的对话框,严重影响心情,因此昨天就下载安装了最新版本的开发工具Xamarin Mono For Android 4.6。安装后也不卡了,也不谈对话框了,太爽了。但是很快发现一个很大的问题“axml编辑器中的无法自动进行标签的自动提示”,这就太降低开发效率。

    遇到问题要学会分析问题,visual studio中对于xml文件提供了自动提示、自动代码完成的功能,其原理是:visual studio会根据当前编辑xml文件的schema声明到Visual studio安装路径下的Xml\Schemas中找和当前编辑的xml文件的schema一致的xsd文件,因为xsd文件是对xml文件格式的标准约束,这样VS就如何完成自动提示了。像Web.config这类文件的自动提示功能就是这样实现的。


   既然明白了这个原理,就来分析一下,打开Xml\Schemas文件夹发现了一个monodroidcatalog.xml文件和monoandroid貌似又关系,打开这个文件发现内容如下:
<SchemaCatalog xmlns="http://schemas.microsoft.com/xsd/catalog">
  <Schema href="%ProgramFiles%/MSBuild/Novell/android-layout-xml.xsd" />
  <Schema href="%ProgramFiles%/MSBuild/Novell/schemas.android.com.apk.res.android.xsd" targetNamespace="http://schemas.android.com/apk/res/android" />

  <Association extension="axml" schema="%ProgramFiles%/MSBuild/Novell/android-layout-xml.xsd" />
</SchemaCatalog>

    猜测这个文件是告诉VS“xsd文件在%ProgramFiles%/MSBuild/Novell/下的android-layout-xml.xsd等文件中”,相当于是一个“指路者”,但是我打开%ProgramFiles%/MSBuild/Novell/却发现根本没有这些文件,看来找到问题了。
    在磁盘上搜索,在C:\Program Files\Xamarin Studio\AddIns\MonoDevelop.MonoDroid\schemas文件夹下发现了:android-layout-xml.xsd、schemas.android.com.apk.res.android.xsd这两个文件,把他们拷贝到%ProgramFiles%/MSBuild/Novell/下,哇咔咔,搞定了。

    凡事搞定原理就不难,遇到问题要学会看错误提示消息和分析,不要像无头苍蝇一样乱撞

------解决方案--------------------
感谢分享,叫版主给你推荐下。
------解决方案--------------------
引用:
话说Mono还不是很成熟

别话说啊,用过才知道。
已经很成熟了。