我正在尝试使用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