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(это не произойдет по умолчанию, и именно поэтому вы видите ошибку что вы упоминаете в верхней части)
- Удостоверьтесь, что вы очищаете и строите проект после внесения изменений, так что вы не пытаетесь исправить все, что работает, но просто не нажали.
Ответ 5
Ответ 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.)