在使用ArcGIS forAndroid1.1版本開發過程中,時常會發生無法導入API提供的類或不能解析GIS的XML文件的相關問題,這是由於的ArcGIS提供的jar包被persisted container,這時,在工程中將無法正常使用API中的相關GIS類。
運行時的錯誤信息:
Could not find class 'com.esri.android.map.MapView', referenced from method com.esri.arcgis.android.samples.querytask.AttributeQuery.onCreate
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.esri.arcgis.android.samples.attributequery/com.esri.arcgis.android.samples.querytask.AttributeQuery}: android.view.InflateException: Binary XML file line #15: Error inflating class com.esri.android.map.MapView
我們可以通過以下方式來解決這類問題:
1、 在eclipse中選擇我們的項目右鍵項目,在彈出框中選擇屬性如圖:
2、 在屬性框中選擇Javabuild Path選擇如圖:
在右邊的Order andExport選項卡中我們可以看到ArcGIS的jar被Persisted container,當引入的jar包在這種狀態時,包裡的類是無法在項目中正常使用的。
3、 將ArcGIS的jar包的選項去掉,點擊ok按鈕,然後我們再次執行上面的步驟1和步驟2,在彈出的窗體中我們可以看到ArcGIS的jar包正常了,如圖:
4、 最後我們還要清理一下項目,點擊菜單的Project---》Clean..如圖:
在彈出框中選擇我們有問題的項目進行清理,如圖:
5、 到此,我們的項目已經可以正常運行了,而問題還沒有真正解決,當我們重啟eclipse後發現我們arcgis的jar包又會變成Persisted container狀態,如何才能正常使用呢,我們可以將arcgis的相關的三個jar(ArcGIS_Android.jar、jackson-core-lgpl-1.9.5.jar和jackson-mapper-lgpl-1.9.5.jar)文件從eclipse的目錄中考出,而後刪除項目中的引用,將我們考出來的jar再引入到項目當中即可,重啟eclipse測試,問題解決。
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11