Android – API Карт Google v2 – NoClassDefFoundError

Я пытаюсь запустить Google Maps с Intellij IDEA 12.

Я уже пробовал советы:

  • Вложение google-карт android v2 в android
  • Ошибка авторизации API Google Android v2
  • Не удалось создать экземпляр android.gms.maps.MapFragment
  • API Google Maps для Android предоставляет NoClassDefFoundError

и так далее. Но, к сожалению, это не работает для меня.

Моя конфигурация:

1) реальное устройство htc wildefire s, android 2.3.5

2) Введите описание изображения здесь

3) AndroidManifest.xml :

       <Manifest xmlns: android = "http://schemas.android.com/apk/res/android"
               пакет = "ru.ergeslab.TransportScheduleYaroslavl"
               Android: INSTALLLOCATION = "Авто"
               Android: VersionCode = "1"
               Android: versionName = "1.0"?>
         <Использование-функция
                 андроид: glEsVersion = "0x00020000"
                 Android: требуется = "истинный" />
         <Uses-permission android: name = "android.permission.INTERNET" />
         <Uses-permission android: name = "android.permission.ACCESS_NETWORK_STATE" />
         <Uses-permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" />
         <Uses-permission android: name = "com.google.android.providers.gsf.permission.READ_GSERVICES" />

         <Uses-permission android: name = "android.permission.ACCESS_COARSE_LOCATION" />
         <Uses-permission android: name = "android.permission.ACCESS_FINE_LOCATION" />
         <разрешение
                 андроид: имя = "ru.ergeslab.TransportScheduleYaroslavl.permission.MAPS_RECEIVE"
                 андроид: ProtectionLevel = "подпись" />
         <Uses-permission android: name = "ru.ergeslab.TransportScheduleYaroslavl.permission.MAPS_RECEIVE" />
         <Использование-SDK
                 Android: minSdkVersion = "10"
                 Android: targetSdkVersion = "16" />
         <Application android: label = "@ string / app_name">
             <Мета-данные
                     андроид: имя = "com.google.android.maps.v2.API_KEY"
                     андроид: значение = "MY_KEY" />
             <Uses-library android: name = "com.google.android.maps" />
             <Activity android: name = "MainActivity"
                       андроид: метка = "@ строка / app_name">
                 <Намерения фильтр>
                     <Action android: name = "android.intent.action.MAIN" />
                     <Category android: name = "android.intent.category.LAUNCHER" />
                 </ Намерение фильтр>
             </ Деятельность>
         </ Приложение>
     </ Манифеста>

4) MainActivity:

 <pre> package ru.ergeslab.TransportScheduleYaroslavl; import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 

5) main.xml :

 <? Xml version = "1.0" encoding = "utf-8"?>
 <Фрагмент xmlns: android = "http://schemas.android.com/apk/res/android"
           андроид: идентификатор = "@ + идентификатор / карта"
           андроид: имя = "com.google.android.gms.maps.SupportMapFragment"
           андроид: layout_width = "match_parent"
           Android: layout_height = "match_parent" />

6) Настройки проекта IDE: Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Полный ловушка для Android:

 04-02 21: 27: 07.718: ОШИБКА / AndroidRuntime (24277): FATAL EXCEPTION: main
         Java.lang.NoClassDefFoundError: com.google.android.gms.R $ стиль
         В com.google.android.gms.maps.GoogleMapOptions.createFromAttributes (Неизвестный источник)
         На com.google.android.gms.maps.SupportMapFragment.onInflate (Неизвестный источник)
         В android.support.v4.app.FragmentActivity.onCreateView (FragmentActivity.java:279)
         На android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:563)
         На android.view.LayoutInflater.inflate (LayoutInflater.java:386)
         На android.view.LayoutInflater.inflate (LayoutInflater.java:320)
         На android.view.LayoutInflater.inflate (LayoutInflater.java:276)
         На com.android.internal.policy.impl.PhoneWindow.setContentView (PhoneWindow.java:250)
         At android.app.Activity.setContentView (Activity.java:1712)
         На ru.ergeslab.TransportScheduleYaroslavl.MainActivity.onCreate (MainActivity.java:13)
         At android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1072)
         At android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1794)
         At android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1851)
         At android.app.ActivityThread.access $ 1500 (ActivityThread.java:132)
         At android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1038)
         На android.os.Handler.dispatchMessage (Handler.java:99)
         На android.os.Looper.loop (Looper.java:150)
         At android.app.ActivityThread.main (ActivityThread.java:4277)
         В java.lang.reflect.Method.invokeNative (собственный метод)
         В java.lang.reflect.Method.invoke (Method.java:507)
         At com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839)
         At com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597)
         В dalvik.system.NativeStart.main (родной метод)

Любая помощь приветствуется.

Solutions Collecting From Web of "Android – API Карт Google v2 – NoClassDefFoundError"

Я наконец запустил приложение!

Я не редактировал манифест, макет и активность, просто обновил настройки проекта:

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Надеюсь, это поможет кому-то.

1. Удалите это разрешение из файла манифеста:

 <uses-library android:name="com.google.android.maps" /> 

Это часть Google Maps API V1 и не требуется в Google Maps API V2.

2. Переместите часть метаданных прямо перед тегом приложения закрытия:

 <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_KEY"/> </application> 

3. Восстановите новый ключ и зарегистрируйте его через консоль Google API и снова выполните весь процесс.

Сначала следуйте этим указаниям

Для полноты документации загрузите и получите ключи и настройки проекта.

Установка API Google Maps Android v2

Специфическая часть IntelliJ

Модули

  1. Импортируйте google-play-services_lib в качестве модуля в проект.

    ${ANDROID_SDK_ROOT}/extras/google/google_play_services/libproject/google-play-services_lib

  2. Теперь убедитесь, что он установлен как модуль библиотеки

    Введите описание изображения здесь

  3. Перейдите в настройки своего проекта и убедитесь, что модуль добавлен в качестве зависимости. Обратите внимание на значок папки.

    Введите описание изображения здесь

  4. Добавьте google-play-services.jar в качестве библиотеки для своего модуля и одного из модулей поддержки Android, если вы планируете поддерживать старые устройства. Большинство людей используют android-support-v4.jar , но в моем примере я использовал android-support-v13.jar который включает все в v4. Здесь вы получаете поддержку Fragment на старых телефонах.

Попробуйте заменить в main.xml

 android:name="com.google.android.gms.maps.SupportMapFragment" 

в

 class="com.google.android.gms.maps.SupportMapFragment" 

Обычно вы не помещаете папку google-play-services_lib в папку libs.

Попробуйте импортировать его в качестве проекта библиотеки. http://blogs.jetbrains.com/idea/2010/09/android-library-projects-support/

У меня была такая же проблема, и мне просто нужно было установить SDK для проекта библиотеки MapsApiV2 на Android 2.3.3 (API lvl 10) (возможно, будет работать и 2.2.