2016-05-31 5 views
1

Я пытаюсь создать простую картографическую программу с SDK ArcGIS Runtime SDK для Xamarin с опцией Xamarin.Forms, пока только с версией Android (пока у меня нет доступа к Mac для iOS). Я могу просто запустить приложение на эмуляторе. Но когда я развертываю его на своем физическом планшете Android (Nexus 7 w/5.0.1), приложение вылетает, когда оно появляется, чтобы отобразить карту. Я даже упаковал его и пригласил друга на свой новый телефон Samsung, и он также падает там.Приложение Xamarin Forms/Android для 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

Локальный планшет Asus Nexus 7 (2012), теперь работает 5.0.1. Также протестирован на Asus Nexus 7 (2013) и телефон Samsung менее чем за год (у него нет телефона/модели). Я понимаю, что Open GL ES 2.0 поддерживается с Android 2. –

+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, но не нашел ничего полезного в этом. Я пробовал вариант «Force GPU rendering» без успеха. –

+0

Я в конце концов купил новый Android-планшет и (немного более новую версию) Esri API работает на нем. Я заключу, что либо старый Asus Nexus 7 2012 не поддерживает OpenGL ES 2, либо что-то не было настроено правильно, либо на устройстве, либо в API или пакете. –

Смежные вопросы