Xamarin Forms/Android 地图应用程序在模拟器上运行,但在物理设备上崩溃

Xamarin Forms/Android map app runs on emulator, but crashes on physical device

我正在尝试使用 ArcGIS Runtime SDK for Xamarin 创建一个简单的地图应用程序,使用 Xamarin.Forms 选项,到目前为止只有 Android 版本(无法访问Mac 还 iOS 个)。我可以 运行 该应用程序在模拟器上运行良好。但是当我将它部署到我的物理 Android 平板电脑 (Nexus 7 w/5.0.1) 时,应用程序在显示地图时崩溃了。我什至将它打包并让一个朋友将它部署到他们的新三星 phone,它也在那里崩溃。

代码极其简单。这是共享代码ContentPage class中的整个主要方法(ArcGIS SDK仅支持共享代码方法):

InitializeComponent ();

myMap = new Map(Basemap.CreateImagery());

// MyMapView is in the XAML markup
MyMapView.Map = myMap;

应用程序崩溃 "Unfortunately (app name) has stopped"。在 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 示例,结果相同。关于这里的原因有什么想法吗?

如果是 opengl 错误,则可能检查设备上的开发人员选项并确保在那里启用了 opengl 2.0。