yandexmapkit-android icon indicating copy to clipboard operation
yandexmapkit-android copied to clipboard

Тестовый пример не работает

Open MKYU opened this issue 12 years ago • 23 comments

Тестовый пример в новой версии не работает ни на реальном устройстве (Galaxy S II) с версией Андроид 4.0.3, ни на эмуляторе. Похожая проблема описывалась здесь https://github.com/yandexmobile/yandexmapkit-android/issues/49 но решения так и не было показано.

Подробнее:

  • API-ключ подставлен во все layout, где используется объект MapView,
  • ресурсы из yandexmapkit-library добавлены в yandexmapkit-sample,
  • библиотека classes.jar подключена,
  • папка armeabi добавлена. Проект собирается под IntelliJ IDEA, предыдущая версия библиотеки (компилируется тоже под IDEA) работает и с тестовым примером и в реальном приложении, новая -нет!

Тестовый пример компилируется успешно, хоть и ругается, что классы ImageBalloonItem, OverlayGeoCode "must either be declared abstract or implement abstract method 'compareTo (T)' in 'Comparable' ". Приложение запускается - показывается список тестовых примеров, но при выборе любого из них - выдаёт ошибку:

10-14 16:50:02.086: ERROR/AndroidRuntime(22248): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.mapkittest/ru.mapkittest.defaultoverlay.DefaultOverlayActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class ru.yandex.yandexmapkit.MapView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) at android.app.ActivityThread.access$600(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4507) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class ru.yandex.yandexmapkit.MapView at android.view.LayoutInflater.createView(LayoutInflater.java:606) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:271) at android.app.Activity.setContentView(Activity.java:1835) at ru.mapkittest.defaultoverlay.DefaultOverlayActivity.onCreate(DefaultOverlayActivity.java:42) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932) ... 11 more Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:586) ... 22 more Caused by: java.lang.NoClassDefFoundError: ru.yandex.yandexmapkit.R$string at ck.a(Unknown Source) at ru.yandex.yandexmapkit.MapController.(Unknown Source) at ru.yandex.yandexmapkit.MapSurfaceView.init(Unknown Source) at ru.yandex.yandexmapkit.MapSurfaceView.(Unknown Source) at ru.yandex.yandexmapkit.MapView.(Unknown Source) ... 25 more

MKYU avatar Oct 14 '12 10:10 MKYU

А зачем вы все копировали? На сколько мне известно IDEA тоже подериживает library-android. В примере лежит готовая apk которая собрана из всего что лежит в гитхабе. Проверте у Вас такой же размер? Так как судя по логу у Вас проблемы с ресурсами которых нет в собранной вами apk

mksaint13 avatar Oct 16 '12 07:10 mksaint13

  1. Заново склонировал репозиторий примера (чистая установка)
  2. ресурсы из yandexmapkit-library в yandexmapkit-sample в этот раз не добавлялись
  3. добавлен в проект модуль yandexmapkit-library с указанием, что это "Is library project"
  4. для модуля yandexmapkit-sample добавлена зависимость от yandexmapkit-library (в разделе Dependencies)
  5. там же для модуля yandexmapkit-sample добавлена библиотека classes.jar (находится yandexmapkit-library/lib), без неё не компилилось.

Результат аналогичен вышеописанному - приложение запускается, но при выборе любого пункта меню валится с точно такой же ошибкой: android.view.InflateException: Binary XML file line #6: Error inflating class ru.yandex.yandexmapkit.MapView

Размер получаемого apk 923 195 байт, (apk с гитхаба 920 745 байт)

Может всё-таки скомпилите библиотеку в виде единого jar-файла как и раньше было? Блин, столько времени уже ушло на эти опыты...

P.S. Пробовал и на IntelliJ IDEA 11.1.3 и на новой IntelliJ IDEA 12

MKYU avatar Oct 17 '12 09:10 MKYU

У меня абсолютно аналогичная проблема с новой версией решилась установкой яндекс карт на голый htc desire s и все заработало! После удаления яндекс карт все равно YMK работает. Использую Идею. На эмуляторах, точнее на виртуал боксе завелось только на тех сборках, где ровно впилены библиотеки совместимости с ARM архитектурой.

kolipass avatar Oct 24 '12 11:10 kolipass

Добавте android.permission.WRITE_SETTINGS

mksaint13 avatar Oct 26 '12 06:10 mksaint13

Данное разрешение присутствует изначально.

MKYU avatar Oct 26 '12 06:10 MKYU

Попробовал сейчас удаление и установку заново Яндекс.Карт - ничего не изменилось. Может всё-таки у вас получится сделать библиотеку в виде единого jar-файла?

MKYU avatar Oct 26 '12 06:10 MKYU

А собранный пример работает ?

mksaint13 avatar Oct 26 '12 07:10 mksaint13

Смотря что считать работой - приложение компилируется, запускается, на экране показывается список тестовых примеров (Объект на карте, Стандартный балун, Нестандартный балун 1 и т.д.), но при выборе любого из них - валится с вышеописанной ошибкой.

MKYU avatar Oct 26 '12 07:10 MKYU

Я так понимаю, вам предлагают запустить на девайсе скомпилированный apk из репозитория:

$git clone https://github.com/yandexmobile/yandexmapkit-android.git $adb install yandexmapkit-android/yandexmapkit-sample/bin/yandexmapkit-sample.apk

Наверное так.

Но у меня на desire s этот же apk не работал. Наверно, все-таки разные у нас проблемы.

kolipass avatar Oct 26 '12 09:10 kolipass

apk из репозитория работает коректно - всё запускается. Проблема в том, что не получается самостоятельно повторить этот пример на основе новой библиотеки. Старая апрелевская версия библиотеки yandexmapkit-android.jar работает на той же IDEA и с тем же телефоном нормально, в т.ч. и встроенная в реальный проект.

MKYU avatar Oct 26 '12 09:10 MKYU

Извините что долго не писал удалось ли побороть проблему ?

mksaint13 avatar Nov 19 '12 11:11 mksaint13

Проблема осталась. Сейчас мои банковские приложения используют апрелевскую версию библиотеки yandexmapkit-android.jar Переходить в среду Eclipse ради новой версии Yandex Map Kit не хочется.

MKYU avatar Nov 19 '12 11:11 MKYU

Если это не критично можете прислать тестовый пример с новым мапкитом так как собираете его вы. Мы попробуем собрать его на соей стороне может поймем в чем дело. А не побывали все ресурсы скопировать в свой проект, а также приатачить к проекту jar

mksaint13 avatar Nov 19 '12 12:11 mksaint13

Отправил в ответном письме по e-mail

MKYU avatar Nov 19 '12 13:11 MKYU

Письмо вернулось. А как вам отправить архив с тестовым примером под IntelliJ IDEA? По какому адресу?

MKYU avatar Nov 19 '12 13:11 MKYU

Проблема решена?

uranpro avatar Jan 25 '13 15:01 uranpro

Проблема осталась, в проектах использую апрелевскую версию библиотеки, которая была в виде единого jar-файла. У кого-нибудь получилось подружить IntelliJ IDEA 12.0.2 (Build #IC-123.123) с yandexmapkit-android?

MKYU avatar Jan 25 '13 15:01 MKYU

Столкнулся с таким же вопросом в IDEA 12.0.4. После небольшого шаманства вроде как палит:

В Project Structure:

  1. Modules - "+" - Import Module - yandexmapkit-android/yandexmapkit-library. Здесь еще через "+" создал Android Module. Галка "Library Module" должна стоять.
  2. В Modules, выбрав yandexmapkit-library из Dependencies убрал все com.android.ide.eclipse.*.
  3. Там же в Modules, выбрав клиентское приложение: Dependencies - "+" - Module Dependency... - yandexmapkit-library и Dependencies - "+" - Library... - Java - yandexmapkit-android/yandexmapkit-library/libs/classes.jar.

По сути, что-либо не работало по одной из трех причин:

  1. Не вкомпиливалась в APK *.so-библиотека.
  2. Не импортились классы из classes.jar.
  3. В APK не включались сгенеренные классы из gen. В stacktrace'е выше, по сути, причина именно эта: не найден автосгенеренный класс ru.yandex.yandexmapkit.R$string из модуля yandexmapkit-library.

eigenein avatar Mar 10 '13 14:03 eigenein

Не работает apk из репозитория yandexmapkit-android/yandexmapkit-sample/bin/yandexmapkit-sample.apk Пробую запустить на эмуляторе Android version 4.0.4 Выводится список примеров, выбираешь любой элемент списка программа слетает.

В чем проблема? Так долго я не возился еще ни с одной библиотекой. То одно не работает то другое. Пробуешь все варианты, потом пробуешь тестовый пример, а он тоже не работает. ЖЕСТЬ!!! Это же Yandex!!! Ребята постыдитесь!!! На собеседования ходил так там такие "умники" сидят, головоломки просят решить, а сами такую ерунду пишут.

hram avatar Apr 10 '13 19:04 hram

ЖЕСТЬ!!! Установил в эмулятор apk Yandex Maps v3.20 заработал пример ))) Как сделать чтобы библиотека работала без Yandex Maps?

hram avatar Apr 10 '13 19:04 hram

Всем привет, тоже была аналогичная проблема, 2 дня бился удалось решить вот каким способом

а папках libs вашего проекта и библиотеки должны быть одинаковые списки "типов процессоров", попросту говоря, если например в библиотеке есть только armeabi то в вашем проект в папке libs тоже должен остаться только armeabi (остальные папки удалить)

после удаления все прекрасно работает (эти папки появляются если вы используете нативные библиотеки - NDK)

может кому поможет...

LexxxHU avatar May 28 '13 08:05 LexxxHU

Как подключить yandex карты к приложению в Android Studio ?

naeimrezaeian avatar Nov 21 '15 18:11 naeimrezaeian