Невозможно запустить действие, которое расширяет MapActivity. - PullRequest
0 голосов
/ 14 февраля 2012

Деятельность (ShowPos) не может быть запущена, когда она расширяет MapActivity.Если я переключаюсь на расширение Activity, оно запускается.

Это работало раньше, до того, как я скопировал / вставил java-коды проекта в новый проект в новом рабочем пространстве, когда неожиданно по непонятным причинам Eclipse больше не мог найти AndroidAPI, и ни один не может быть повторно импортирован.Подобные вещи случались несколько раз прежде, это кажется обычным с Eclipse.Но копирование / вставка всегда работало раньше, по крайней мере, какое-то время.И теперь он предупреждает об отсутствии такой ошибки.

У меня есть API-ключ, который работал раньше.maps.jar теперь находится под Google API 2.2 под проектом в проводнике проекта.Редактор не отмечает ошибок ни в одном файле проекта.При запуске LogCat начинается с:

<code>
 - D dalvikm Calling exit(1)
 - W dalvikm Unable to resolve superclass of Lintrax/three/ShowPos; (35)
 - W dalvikm Link of class 'Lintrax/three/ShowPos;' failed
 - D AndroidRuntime Shutting down VM
 - W dalvikm threadid=1: thread exiting with uncaught exception
   (groupnr)
 - E AndroidRuntime FATAL EXCEPTION: main

Мое имя проекта теперь "intrax.three".Почему это добавляет "L" к этому?Манифест содержит:


    uses-library android:name="com.google.android.maps"
    uses-permission android:name="android.permission.INTERNET"

(Не удалось вставить файл манифеста здесь)

Спасибо за любую помощь о том, как я могу помочь Eclipse найти материал!

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

Перейдите в Project -> Preferences -> Android -> Project Build Target и убедитесь, что вы создали проект, который использует API Google

0 голосов
/ 14 февраля 2012

Я следовал учебному пособию MapView , и он прекрасно работает без каких-либо ошибок.

Ошибка, о которой идет речь, link error, где Dalvik VM не может найти ваш класс. Это означает, что все предложения, приведенные здесь (uses-library, разрешение на доступ в Интернет, установка API-интерфейсов Google в качестве цели сборки), даже не входят в картину. Ошибка ссылки означает, что ОС Android не может найти ваш класс. Итак, я предлагаю вам попробовать создать чистый проект, в котором вы создаете новый Class из Eclipse и затем вставляете фрагмент кода вместо вставки файлов.

Кстати, L используется для идентификации Object. Ссылка: Идентификаторы Java .

Счастливого кодирования!

0 голосов
/ 14 февраля 2012

Если вы уже определили права доступа в Интернет и используете -библиотеку

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

Также убедитесь, что в качестве цели проекта задан google APi.

В-третьих, ваша вещь - это ваш пакетНужно исправить уровень и собрать проект заново без какой-либо явной библиотеки map.jar. Используйте только google APi inbuilt maps.jar и создайте новое действие, расширяющее MapActivity (также декларируйте в манифесте).

...