Просмотр карты в классе MapActivity не найден - PullRequest
6 голосов
/ 07 марта 2011

Я видел другие темы с похожими симптомами, но ни один из ответов не решил мою проблему.Я следую инструкции по просмотру карты Google, http://developer.android.com/resources/tutorials/views/hello-mapview.html и точно следую всем указаниям, я получаю эту ошибку .. java.lang.ClassNotFoundException: com.goodintechnology.maps.Mymap в загрузчике dalvik.system.PathClassLoader [/data/app/com.goodintechnology.maps-1.apk]

Я много раз начинал с нуля, но каждый раз, как только я изменяю Activity на MapActivity, выдается ошибка.Цель приложения - Google API 2.2, и эмулятор такой же, с включенным GPS.Я пытался поместить оператор использования библиотеки до, после и в операторе Applications, но это ничего не изменило.Я даже пытался поместить заявление в манифесте вертикально.Итак, после примерно 8 часов возиться с этим, я положил это всем вам.Вот код:

AndroidManifest.xml

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

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Mymap"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

и макет main.xml

<com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="My key that was generated on google is here. trust me"
/>
</LinearLayout>

И класс Mymap

package com.goodintechnology.maps;
import com.google.android.maps.MapActivity;
import android.os.Bundle;

public class Mymap extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}
}

Как уже упоминалось, все это прямо из учебника Google Map View.

Ответы [ 5 ]

25 голосов
/ 07 марта 2011
<uses-library android:name="com.google.android.maps" />

должно быть в пределах

Вы сказали, что пытались это сделать, но, как у вас сейчас есть, это не будет работать случайно, поэтому сначала измените это.

15 голосов
/ 07 марта 2011

Похоже, что maps.jar не включен в папку вашего проекта.

Прежде всего, поместите следующую строку как дочерний элемент приложения в файле манифеста

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

После этого щелкните правой кнопкой мыши напапка вашего проекта -> Свойства -> Android -> В Project Build Target проверьте, установлен ли флажок только для Google API.если не проверить это.это добавит maps.jar в ваш проект, и тогда ваш проект поймет, что такое MapActivity ..:)

4 голосов
/ 07 марта 2011

Вы загрузили надстройку API Google для используемой версии SDK?

API Google не входят в комплект поставки стандартного SDK.Вы должны загрузить их, используя AVD Manager.

Редактировать - он говорит о добавлении <uses-library ... /> в качестве дочернего тега <application>.

Это означает поместить его в строку после тега <application>, но до </application>.

0 голосов
/ 16 января 2012

Я исправил эту ошибку, установив eclipse в другом месте и установив плагины Android (ADT).Это сработало для меня.

0 голосов
/ 20 июня 2011

У меня была точно такая же проблема, пока я не создал новое виртуальное устройство Android.

Убедитесь, что вы создаете виртуальное устройство Android, в котором также есть API-интерфейсы Google ... просто недостаточно иметь API-интерфейсы в SDK и установить цель запуска для версии с включенными API-интерфейсами Google, вам также необходимо чтобы убедиться, что на виртуальном устройстве эмулятора также установлены API Google из Android SDK.

...