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
.
Ответы
Ответ 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
Еще одна вещь, которую нужно проверить,
- Если у вас есть два набора библиотек для карт. Тогда это не работает. Проверьте путь сборки.
Надеюсь, это может сработать для кого-то.