我正在嘗試使用Xamarin的Xamarin.Forms選項創建一個簡單的地圖應用程序,目前爲止只有Android版本(目前還無法訪問iOS的Mac)。我可以在模擬器上運行該應用程序。但是當我將其部署到我的實體Android平板電腦(Nexus 7 w/5.0.1)時,該應用程序在顯示地圖時崩潰。我甚至將它打包並讓一位朋友將其部署到他們的新三星手機中,並且它也在那裏崩潰。Xamarin Forms/Android地圖應用程序在模擬器上運行,但在物理設備上崩潰
代碼非常簡單。下面是在共享碼ContentPage類整個主方法(通過ArcGIS SDK只支持共享代碼的方法):
InitializeComponent();
myMap = new Map(Basemap.CreateImagery());
// MyMapView is in the XAML markup
MyMapView.Map = myMap;
的應用程序崩潰與「不幸的是(應用程序名稱)已停止」。在Visual Studio中,輸出包括:
Java.Lang.IllegalArgumentException: No configs match configSpec
05-16 10:24:24.083 E/AndroidRuntime(24893): FATAL EXCEPTION: GLThread 1373
05-16 10:24:24.083 E/AndroidRuntime(24893): Process: ArcGisMapTest.Droid, PID: 24893
05-16 10:24:24.083 E/AndroidRuntime(24893): java.lang.IllegalArgumentException: No configs match configSpec
05-16 10:24:24.083 E/AndroidRuntime(24893): at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:858)
05-16 10:24:24.083 E/AndroidRuntime(24893): at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1023)
05-16 10:24:24.083 E/AndroidRuntime(24893): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1400)
05-16 10:24:24.083 E/AndroidRuntime(24893): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
基於configSpec錯誤消息的其他在線帖子,這似乎是OpenGL問題。但物理設備似乎支持所需的OpenGL ES 2.0。我也能運行一個小樣本的應用程序 https://developer.xamarin.com/api/type/Xamarin.Forms.OpenGLView/
我也在模擬器和設備上運行ESRI Xamarin.Forms示例和Xamarin.Android示例,結果相同。任何想法在這裏引起?
在哪個設備上測試它?你聲明該設備似乎支持ogl 2.0,但沒有該設備的模型,它是無法驗證的。 – Gusman
本地平板電腦是一個華碩Nexus 7(2012),現在運行5.0.1。還在華碩Nexus 7(2013)和不到三歲的三星手機(沒有手機/型號)上進行測試。我的理解是,自從Android 2以來,Open GL ES 2.0得到了支持。 –
這取決於設備,但是,嘿,我使用完全相同的設備(nexus 7 2013)進行調試,現在我正在使用地圖和ogl2。 ..真的很奇怪。嘗試從.droid項目中刪除Xamarin.Forms.Maps包和Xamarin.GooglePlayServices.Maps包,清理解決方案,從項目中刪除bin和obj文件夾,再次添加包並重新編譯,與這些奇怪的事情錯誤與Xamarin清理一切有助於。 – Gusman