ArcGIS — ошибка неудовлетворительной ссылки найти библиотеку, возвращенную null — пример приложения Hello World

Это мой первый раз в ArcGIS, но не в первый раз для Android. Я Android-разработчик. Для одного из наших недавних проектов я изучаю модули/образцы ArcGIS. Я сделал следующие шаги:

  1. Установил Eclipse JUNO (последняя). Так как моя предыдущая версия испортилась, пришлось заменить систему.
  2. Загружен SDK среды выполнения ArcGIS для Android 10.1.1.
  3. Установил подключаемый модуль ArcGIS из загруженного zip-файла, полученного на шаге 2.
  4. Перезапустил Eclipse/Систему.

Теперь, чтобы изучить базовое приложение «Hello World» ArcGIS, я сделал следующие шаги.

  1. Файл — Создать — Проект — В новом окне — выбрать опцию «ArcGIS for Android».
  2. Из двух вариантов я выбрал «Примеры ArcGIS для Android». Эта опция открывает еще одно окно для получения образцов из локальной сети или из Интернета.
  3. Я выбрал "МЕСТНЫЙ".
  4. В разделе «Карты» я выбрал пример проекта «Hello World».
  5. Теперь проект Hello World находится в моем рабочем пространстве.
  6. Почистил и собрал проект. Все ошибки ушли.
  7. Запустите проект.

Я получаю следующий журнал ошибок:

06-26 16:36:15.678: E/AndroidRuntime(2672): FATAL EXCEPTION: main
06-26 16:36:15.678: E/AndroidRuntime(2672): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.esri.arcgis.android.samples.helloworld/com.esri.arcgis.android.samples.helloworld.HelloWorld}: android.view.InflateException: Binary XML file line #9: Error inflating class com.esri.android.map.MapView
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread.access$600(ActivityThread.java:130)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.os.Handler.dispatchMessage(Handler.java:99)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.os.Looper.loop(Looper.java:137)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread.main(ActivityThread.java:4745)
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.reflect.Method.invokeNative(Native Method)
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.reflect.Method.invoke(Method.java:511)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-26 16:36:15.678: E/AndroidRuntime(2672): at dalvik.system.NativeStart.main(Native Method)
06-26 16:36:15.678: E/AndroidRuntime(2672): Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class com.esri.android.map.MapView
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.Activity.setContentView(Activity.java:1867)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.arcgis.android.samples.helloworld.HelloWorld.onCreate(HelloWorld.java:42)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.Activity.performCreate(Activity.java:5008)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
06-26 16:36:15.678: E/AndroidRuntime(2672): ... 11 more
06-26 16:36:15.678: E/AndroidRuntime(2672): Caused by: java.lang.reflect.InvocationTargetException
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.reflect.Constructor.constructNative(Native Method)
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
06-26 16:36:15.678: E/AndroidRuntime(2672): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
06-26 16:36:15.678: E/AndroidRuntime(2672): ... 22 more
06-26 16:36:15.678: E/AndroidRuntime(2672): Caused by: java.lang.ExceptionInInitializerError
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.android.map.MapView.a(Unknown Source)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.android.map.MapView.<init>(Unknown Source)
06-26 16:36:15.678: E/AndroidRuntime(2672): ... 25 more
06-26 16:36:15.678: E/AndroidRuntime(2672): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load runtimecore_java: findLibrary returned null
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.Runtime.loadLibrary(Runtime.java:365)
06-26 16:36:15.678: E/AndroidRuntime(2672): at java.lang.System.loadLibrary(System.java:535)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.core.internal.util.e$1.initialize(Unknown Source)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.android.io.a.a(Unknown Source)
06-26 16:36:15.678: E/AndroidRuntime(2672): at com.esri.android.map.MapSurface.<clinit>(Unknown Source)
06-26 16:36:15.678: E/AndroidRuntime(2672): ... 27 more

Позже я следил за форумами ArcGIS и наткнулся на множество ссылок, например http://forums.arcgis.com/threads/484...-returned-null http://forums.arcgis.com/threads/850...ello-World-run, но, увы, ошибка так и не была устранена.

Я столкнулся с похожей проблемой в одном из моих Android-проектов. Там была папка libs с файлами .so для armeabi и armeabi-v7a. Я преобразовал проект в библиотеку и использовал его в одном из моих других проектов. Поскольку это был небольшой проект, мне не нужно было изучать преобразованный проект библиотеки. Это связано со ссылкой на файлы .so или библиотечные файлы, связанные с обновлениями Eclipse. Я все еще не уверен, как настроить файлы .so в пути сборки, чтобы не было ошибки «Неудовлетворенная ссылка».

Пожалуйста, смотрите прикрепленный скриншот для Пути сборки этого проекта. Изображение пути сборки


person Vansi    schedule 26.06.2013    source источник
comment
Похоже, этот вопрос лучше подходит для GIS Stack Exchange.   -  person PolyGeo    schedule 27.06.2013


Ответы (1)


Как и карты Google, Arc GIS также не будет работать в эмуляторе, чтобы запустить ваше приложение на реальном устройстве, оно должно работать.

person sravan    schedule 27.06.2013
comment
Да. В реальном устройстве работает без проблем. Но чтобы образец работал в эмуляторе, эмулятор никогда не должен быть эмулятором изображения x86. Это всегда должен быть эмулятор изображения уровня API 15 ARM-eabi-v7a. Перейдите по этой ссылке для более подробной информации. blogs.esri.com/esri/arcgis/2012/05/02/ - person Vansi; 27.06.2013