Подтвердить что ты не робот

API Google Maps для Android предоставляет NoClassDefFoundError

Мое приложение состоит только из карты с наложением, но когда я создаю свой MapView, мое приложение падает с NoClassDefFoundError. Я использую API API Google, который соответствует моей цели, но, видимо, я все еще делаю что-то неправильно. Любые идеи?

EDIT: в случае, если это помогает, мой NoClassDefFoundError жалуется на [generic]. Я могу понять, почему нет определения класса для [generic], но я не уверен, откуда это.

Кроме того, более поздняя ClassNotFoundException жалуется на com.google.android.maps.MapView in loader dalvik.system.PathClassLoader[/data/app/mathphreak.cellmap-1.apk], а затем продолжает вызывать другой NoClassDefFoundError для java.lang.NoClassDefFoundError: com.google.android.maps.MapView.

4b9b3361

Ответ 1

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

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

и убедитесь, что оно находится в правильном месте. Моя проблема (с аналогичными сообщениями об ошибках) заключалась в том, что я поместил ее туда, но, как и файлы с правами на использование, это было просто в манифесте корневого элемента, когда на самом деле элемент use-library предполагается помещать под элемент приложения. В случае, если я не был достаточно ясен, см. Часть: Настройка манифеста приложения из Sameers ссылка.

Ответ 2

У меня была та же проблема, и я исправил ее благодаря Тимо Лехто, но поставил эту строку

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

после открытия тега приложения (в начале)

   <application
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library
            android:name="com.google.android.maps"
            android:required="true" />

        <activity ...

Ответ 3

У меня была та же проблема, и я решил ее изменить в манифесте:

<activity android:name=".GpsActivity" ></activity>

к

<activity android:name="GpsActivity" ></activity>

"точка" - это разность

Ответ 4

Может быть две вещи.

i) Убедитесь, что вы определили все свои классы активности в классе AndroidManifest.xml.

ii) Убедитесь, что вы компилируете свой проект Android с помощью "Google API" вместо "Android 2.x". Если вы скомпилируете только API Google, то он добавит классы Google Maps.

Ответ 5

Еще одна вещь, которую нужно проверить,

  • Если у вас есть два набора библиотек для карт. Тогда это не работает. Проверьте путь сборки.

Надеюсь, это может сработать для кого-то.