【分享】解决Mono for android的xml编辑器无法代码完成的问题

cownew 2013-05-10 09:38:45
加精
这两天在给黑马程序员.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/下,哇咔咔,搞定了。

凡事搞定原理就不难,遇到问题要学会看错误提示消息和分析,不要像无头苍蝇一样乱撞
...全文
1692 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
woyaoxiaosi 2013-07-23
  • 打赏
  • 举报
回复
学习学习!对以后可能有用。
多发好 2013-05-23
  • 打赏
  • 举报
回复
sjsk518.52ka.cn世纪数卡
多发好 2013-05-23
  • 打赏
  • 举报
回复
sjsk518.52ka.cn世纪数卡
停转的发条 2013-05-23
  • 打赏
  • 举报
回复
codepat 2013-05-21
  • 打赏
  • 举报
回复
好消息!著名游戏引擎Unity的移动基本版从今天起免费了,直降800美元 http://geek.csdn.net/news/detail/1190
codepat 2013-05-21
  • 打赏
  • 举报
回复
引用 31 楼 cownew 的回复:
[quote=引用 24 楼 wyd1520 的回复:] 可惜那个Android C# 平台是商业的,要收费。。还是用JAVA吧
unity3d能够大大简化游戏的开发,节省下来的时间和开发人员的投资不知比这万八千的授权费多多少倍。[/quote] 已经出免费版了,亲
  • 打赏
  • 举报
回复
谢谢楼主分享 ~~~~
mbugaifc 2013-05-21
  • 打赏
  • 举报
回复
cownew 2013-05-20
  • 打赏
  • 举报
回复
引用 24 楼 wyd1520 的回复:
可惜那个Android C# 平台是商业的,要收费。。还是用JAVA吧
unity3d能够大大简化游戏的开发,节省下来的时间和开发人员的投资不知比这万八千的授权费多多少倍。
u010751030 2013-05-19
  • 打赏
  • 举报
回复
学习学习!!!
yudilangren 2013-05-19
  • 打赏
  • 举报
回复
学习了
u010760438 2013-05-19
  • 打赏
  • 举报
回复
qq675635488 2013-05-19
  • 打赏
  • 举报
回复
u010754920 2013-05-19
  • 打赏
  • 举报
回复
学习!顶一个!
哈哈龙龙 2013-05-18
  • 打赏
  • 举报
回复
好好学习,天天向上
安雨哲 2013-05-18
  • 打赏
  • 举报
回复
不错1111111111111111111111111111111
本拉灯 2013-05-18
  • 打赏
  • 举报
回复
可惜那个Android C# 平台是商业的,要收费。。还是用JAVA吧
liujiang917 2013-05-18
  • 打赏
  • 举报
回复
原理很重要呀
xiaowu111999 2013-05-17
  • 打赏
  • 举报
回复
学习了,要找对方法才能事半功倍.
yyyydeyyy 2013-05-17
  • 打赏
  • 举报
回复
用过才知道的
加载更多回复(15)

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧