2016-05-31 66 views
1

我正在嘗試使用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示例,結果相同。任何想法在這裏引起?

+0

在哪個設備上測試它?你聲明該設備似乎支持ogl 2.0,但沒有該設備的模型,它是無法驗證的。 – Gusman

+0

本地平板電腦是一個華碩Nexus 7(2012),現在運行5.0.1。還在華碩Nexus 7(2013)和不到三歲的三星手機(沒有手機/型號)上進行測試。我的理解是,自從Android 2以來,Open GL ES 2.0得到了支持。 –

+0

這取決於設備,但是,嘿,我使用完全相同的設備(nexus 7 2013)進行調試,現在我正在使用地圖和ogl2。 ..真的很奇怪。嘗試從.droid項目中刪除Xamarin.Forms.Maps包和Xamarin.GooglePlayServices.Maps包,清理解決方案,從項目中刪除bin和obj文件夾,再次添加包並重新編譯,與這些奇怪的事情錯誤與Xamarin清理一切有助於。 – Gusman

回答

1

如果這是一個opengl錯誤,那麼可能檢查設備上的開發人員選項,並確保在那裏啓用opengl 2.0。

+0

感謝您的建議。我沒有在設備上的開發人員選項中看到有關OpenGL的任何特定內容,除了「啓用OpenGL跟蹤」,我已將其設置爲Logcat,但沒有發現任何有用的東西。我試過了「強制GPU渲染」選項,但沒有成功。 –

+0

我最終購買了一款新的Android平板電腦,並且(稍微更新的版本)Esri API在其上運行。我會得出結論,舊的Asus Nexus 7 2012不支持OpenGL ES 2,或者在設備或API或軟件包中配置不正確的東西。 –

相關問題