API Android Google Maps v2 - сбой кода образца

Я пытаюсь получить образец кода для Android "Google Maps Android API v2". Я получаю проект без ошибок. Однако, когда я пытаюсь запустить приложение на своем Galaxy Nexus (связанное с usb на моем ноутбуке), приложение немедленно сработает.

  • Я заполнил свой собственный ключ API Карт на AndroidManifest.xml
  • Я построил на Android 4.1.2

Это журнал:

Unable to resolve superclass of Lcom/example/mapdemo/BasicMapActivity; (66) 
Link of class 'Lcom/example/mapdemo/BasicMapActivity;' failed 
Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity.<clinit> 
VFY: unable to resolve const-class 108 (Lcom/example/mapdemo/BasicMapActivity;) in Lcom/example/mapdemo/MainActivity; 
VFY: replacing opcode 0x1c at 0x000d 
Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/example/mapdemo/MainActivity; 
Class init failed in newInstance call (Lcom/example/mapdemo/MainActivity;) 
Shutting down VM 
threadid=1: thread exiting with uncaught exception (group=0x41ac9930) 
FATAL EXCEPTION: main 
java.lang.ExceptionInInitializerError
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1319)
at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
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:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity
at com.example.mapdemo.MainActivity.<clinit>(MainActivity.java:97)
... 15 more

Есть ли у кого-нибудь подсказка, как решить эту проблему или что я могу делать неправильно?

Ответ 1

Соблюдайте внимательно, внимательно и внимательно: https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

В частности, я думаю, вам нужно:

  • Импортировать фактический источник проекта "google-play-services_lib" и связать его как библиотеку Android.
    • Сделайте это через Project → Properties → Android → Library, Add → google-play-services_lib (вы можете щелкнуть правой кнопкой мыши по вашему проекту и выбрать "Свойства", а затем выбрать Android).
    • Сделайте не добавление его в качестве зависимого проекта через "путь сборки Java" для вашего проекта, который не работает для меня.
  • Добавьте google-play-services.jar и android-support-v4.jar в папку "libs" в примере проекта и добавьте их как "Внешние внешние JAR файлы" в "Путь сборки → Настроить путь сборки → Библиотеки".

Я обнаружил, что этот второй шаг был необходим, поскольку я пытался получить ту же ошибку, что и при попытке использовать образец кода. Первый шаг был необходим, чтобы избежать NoClassDefFoundError в com.google.android.gms.R$styleable в моем реальном проекте.

Мне также понадобилось выполнить сборку Clean и удалить приложение с устройства (с более ранней попытки тестирования) до того, как сработал код примера.

Ответ 2

Следуйте инструкциям следующих примеров кода в Google.

Пропустите раздел "4" и следуйте инструкциям ниже:

  • Добавить новую папку в проект под названием "libs"
  • Скопировать форму google-play-services.jar:

    "андроид-СДК-папка\Extras\Google\google_play_services\libproject\Google-игра-services_lib\LIBS"

    в папку "libs" → щелкните правой кнопкой мыши на этой банке в этой папке → Путь сборки → Добавить для создания пути.

  • Скопировать форму поддержки android-v4.jar:

    "андроид-СДК-папка\Extras\Android\поддержка\v4"

    в папку "libs" → щелкните правой кнопкой мыши на этой банке в этой папке → Путь сборки → Добавить в путь сборки.

Где "android-sdk-folder" обычно выглядит так: "C:\Users\User_Name\android-sdks"

Ответ 3

У меня была такая же проблема, я сделал следующее, чтобы устранить проблему.

  • Перейдите в "Свойства" проекта.
  • Выберите "Путь сборки Java"
  • Выберите вкладку "Заказ и экспорт".
  • Здесь вы должны увидеть пути и зависимости выбранного проекта "src" и "gen" .

Порядок их перечисления был первым "src" , а затем "gen" path, я их переключаю, так что папка "gen" создается до "src"

THEN "Проверка" каждого из перечисленных элементов

см: NoClassDefFoundError для кода в библиотеке Java на Android

Ответ 4

Это происходит из-за большой путаницы в том, как импортировать проекты. Документы https://developers.google.com/maps/documentation/android/intro#sample_code скажем, вы не должны выбирать "Копировать проекты в рабочее пространство" в любой момент, и для того, чтобы запустить образцы, это то, что вам нужно придерживаться. Не выбирайте этот параметр для игровых сервисов и образцов - оставляйте их там, где они есть.

После импорта обоих проверьте следующее:

  • Щелкните правой кнопкой мыши проект MainActivity и выберите свойства
  • Перейдите на Android и убедитесь, что вы видите зеленый галочку рядом с google-play-services-lib (Игровые сервисы lib никогда не должны добавляться как банку - вместо этого она должна быть добавлена ​​в качестве библиотеки Android).
  • Перейдите в Java Build Path и импортируйте внешнюю банку (android-support-v4.jar) в разделе библиотек
  • [ВАЖНО] Перейдите в раздел "Порядок и экспорт" на пути сборки Java и убедитесь, что рядом с ним находится галочка android-support-v4.jar(это не произойдет по умолчанию, и именно поэтому вы видите ошибку что вы упоминаете в верхней части)
  • Удостоверьтесь, что вы очищаете и строите проект после внесения изменений, так что вы не пытаетесь исправить все, что работает, но просто не нажали.

Ответ 6

Я столкнулся с той же проблемой и не мог решить. Наконец, я взял папку с образцами проектов с другой машины, скопировал ее в шахту и загрузил новый проект, который я взял с другой машины. Тогда все работает нормально. Я попытался отследить эту проблему, сравнив два примера проектов, но не смог. В любом случае, новые образцы проектов, которые я взял с другой машины, работают нормально.

Ответ 7

У меня была такая же проблема. В ответе был указан файл "import-summary.txt". В моем случае я импортировал проект eclipse в путь с пробелом в пути. Это вызывает проблему с мастером. Создал новый путь. Повторно импортированный проект. Затем Build/Rebuild Project. Нет проблем.

Ответ 8

  • Попробуйте использовать тот же пример кода в новой рабочей области.

  • Даже вы можете скопировать и вставить проект проектной карты и проект google play services-lib (/extras/google/google_play_services/libproject/google-play-services_lib) и вставить это в новое новое рабочее пространство.

  • После того, как вы забыли добавить НЕОБХОДИМЫЙ ФАЙЛ JAR из SDK. ( "android-support-v4.jar" находится в "/extras/android/compatibility/v4/android-support-v4.jar" под вашим "android-sdk" drectory.)