ArcGIS 10.1.1 libGLMapCore.so

Току-що надстроих приложението си до версия 10.1.1 на ArcGIS за Android и започнах да получавам грешка по време на изпълнение. Ако добавя файла libGLMapCore.so към директорията на project libs->armeabi, проблемът изчезва и програмата работи добре.

Този файл не е в примерите на ArgGIS HelloWorld, така че се чудя защо моят проект се нуждае от него. Ако някой може да ми помогне да разбера това, ще съм благодарен. (За информация - опитах се да копирам папката libs от примера на ESRI, но не помогна.) По-долу е проследяване на стека, което получавам без файла libGLMapCore.so.

05-30 12:53:42.117: E/Trace(1738): error opening trace file: No such file or directory (2)
05-30 12:53:42.507: W/dalvikvm(1738): Exception Ljava/lang/UnsatisfiedLinkError; thrown  while initializing Lcom/esri/android/map/MapSurface;
05-30 12:53:42.507: D/AndroidRuntime(1738): Shutting down VM
05-30 12:53:42.507: W/dalvikvm(1738): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
05-30 12:53:42.527: E/AndroidRuntime(1738): FATAL EXCEPTION: main
05-30 12:53:42.527: E/AndroidRuntime(1738): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.baseops.airsuitability.main/com.baseops.airsuitability.main.AirfieldSuitabilityMain}: android.view.InflateException: Binary XML file line #8: Error inflating class com.esri.android.map.MapView
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.os.Looper.loop(Looper.java:137)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread.main(ActivityThread.java:5041)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.reflect.Method.invokeNative(Native Method)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.reflect.Method.invoke(Method.java:511)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at dalvik.system.NativeStart.main(Native Method)
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class com.esri.android.map.MapView
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.createView(LayoutInflater.java:613)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.Activity.setContentView(Activity.java:1881)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.baseops.airsuitability.main.AirfieldSuitabilityMain.onCreate(AirfieldSuitabilityMain.java:73)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.Activity.performCreate(Activity.java:5104)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-30 12:53:42.527: E/AndroidRuntime(1738):     ... 11 more
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.reflect.InvocationTargetException
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.reflect.Constructor.constructNative(Native Method)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at android.view.LayoutInflater.createView(LayoutInflater.java:587)
05-30 12:53:42.527: E/AndroidRuntime(1738):     ... 22 more
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.ExceptionInInitializerError
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.esri.android.map.MapView.a(Unknown Source)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.esri.android.map.MapView.<init>(Unknown Source)
05-30 12:53:42.527: E/AndroidRuntime(1738):     ... 25 more
05-30 12:53:42.527: E/AndroidRuntime(1738): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load GLMapCore from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.baseops.airsuitability.main-1.apk,libraryPath=/data/app-lib/com.baseops.airsuitability.main-1]: findLibrary returned null
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at java.lang.System.loadLibrary(System.java:535)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.esri.android.a.a.a(Unknown Source)
05-30 12:53:42.527: E/AndroidRuntime(1738):     at com.esri.android.map.MapSurface.<clinit>(Unknown Source)
05-30 12:53:42.527: E/AndroidRuntime(1738):     ... 27 more

person eimmer    schedule 30.05.2013    source източник


Отговори (1)


Мисля, че това е просто грешка с ArcGIS, когато използвате техния плъгин в проект, който не е ArcGIS. Въпреки това вероятно е проблем само с Eclipse. Той не копира върху собствени библиотеки, когато използвате библиотека на Java... Не съм сигурен, че ще направи това за която и да е библиотека. Но класът MapSurface се опитва да използва собствената библиотека и тя не е там...така че ТРЯБВА да го добавите, ако Eclipse не го направи вместо вас.

Получавах същия проблем. Намерих публикация във форума на arcGIS, която сочи факта, че .so файловете на собствената библиотека на ArcGIS липсват в моя проект. Както изглежда сте направили, аз направих следното, за да копирам собствените библиотеки в моя проект и сега той се свързва и създава обект Map:

  • Създайте нов проект със съветника SDK ArcGIS Project for Android
  • Копирайте родните библиотеки от новия проект във вашия съществуващ проект. напр. $//libs/armeabi(-v7a)/libruntimecore_java.so. Имайте предвид, че това име на файл е променено във v10.1.1.
  • Щракнете с десния бутон върху вашия оригинален проект и изберете Свойства
  • Изберете Java Build Path > раздел Order and Export Потвърдете, че ArcGIS for Android 10.1.1 classpath контейнерът е експортиран

Надявам се това да помогне. Ето връзка към форума: http://forums.arcgis.com/threads/87407-Error-inflating-class-com.esri.android.map.MapView?highlight=exception

person Ronnie    schedule 21.08.2013