這兩天在給黑馬程式員.Net訓練營講使用.Net開發Android的Mono for android技術,發現使用的開發工具在停止調試的時候特別卡,能卡上幾十秒鐘,而且經常彈出報錯的對話方塊,嚴重影響心情,因此昨天就下載安裝了最新版本的開發工具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/下,哇哢哢,搞定了。
凡事搞定原理就不難,遇到問題要學會看錯誤提示訊息和分析,不要像無頭蒼蠅一樣亂撞