Ошибка расширения класса com.google.android.maps.MapView

я просто следую простому руководству по карте http://developer.android.com/resources/tutorials/views/hello-mapview.html, но получаю эту ошибку. Я новичок в Android, я пытался следовать всем решениям, предоставленным через Интернет, но пока безуспешно. Пожалуйста помогите. Мой основной .xml ниже

<?xml version="1.0" encoding="utf-8"?>
<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="***"
/>

и файл манифеста это


person zeshu    schedule 01.07.2011    source источник
comment
где находится основной файл и файл манифеста?   -  person Vijaya    schedule 01.07.2011
comment
Какую именно ошибку вы получаете?   -  person Felix    schedule 01.07.2011
comment
четко объясните сообщение об ошибке, чтобы люди могли вам помочь   -  person Lavanya    schedule 01.07.2011
comment
Пожалуйста, выберите ответ   -  person Bobs    schedule 09.05.2012


Ответы (9)


У меня была эта проблема, и я решил ее, выполнив следующие 2 шага:

1) Поместите следующую строку в элемент application (важный) файла AndroidManifest.xml.

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

2) расширить MapActivity вместо Activity.

Наслаждайтесь!

person Bobs    schedule 04.10.2011
comment
Глупый, я забыл расширить картографическую активность - person Warpzit; 09.12.2011
comment
Примечание. MapActivity устарела. В настоящее время вместо этого нам нужно использовать MapFragment (или SupportMapFragment). - person gMale; 10.09.2015

Вы расширили основной класс как MapActivity?

public class a 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;
    }
}
person Lope Emano    schedule 04.07.2011

У меня была такая же проблема, и около 3 часов поиска - это то, что я сделал, чтобы исправить это, все в манифесте.

1) В моем манифесте этот код был не в том месте

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

это должно быть здесь, под

    <application>

нравится

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.package.name">
      ...
      <application android:name="MyApplication" >
        <uses-library android:name="com.google.android.maps" />
        ...
      </application>
      ...
    </manifest>

2) Я потерял точку где-то в своем манифесте

    <activity 
        android:name="MyClass" //*****should be android:name=".MyClass"***
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MyClass />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

3) Я не указал минимальную версию SDK, которая идет под

    <manifest> 

код:

    <uses-sdk android:minSdkVersion="7" />

4) чтобы заставить карту работать через eclipse в режиме отладки, следуйте этим указаниям в командной строке или терминале http://www.buzztouch.com/resources/Obtaining_a_Google_Maps_API_Key_v1.0.pdf

Я надеюсь, что это помогает кому-то

person tricknology    schedule 05.02.2012

У меня была проблема. Просто расширьте MapActivity вместо Activity.

person ManJan    schedule 01.03.2012

Эмулятор, на котором вы запускаете приложение, не имеет jar карты Google. поэтому создайте эмулятор из Google API и запустите там свое приложение.

См. изображение для создания эмулятора с помощью Google API.

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

person Sunil Kumar Sahoo    schedule 01.07.2011

Вставьте это в объявление xml MapView

xmlns:android="http://schemas.android.com/apk/res/android"
person Jayson Tamayo    schedule 09.11.2011

для работы с гугл картами дополнительно использовать тег

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

в теге использовать другой тег

<uses-permission android:name="android.permission.INTERNET"/>

внутри тега, и все готово.

Но помните, что вы должны запускать это приложение в AVD, совместимом с Google Inc. API, но не с Android API.

Еще одна важная вещь: убедитесь, что вы используете ключ API MD5 вместо SHA1 или любого другого ключа API протокола.

person Chandra Sekhar    schedule 06.02.2012

Я знаю, что следующее не было ошибкой первоначального автора вопроса, но, поскольку моя проблема привела к тому же сообщению об ошибке, я подумал, что мог бы также добавить его на случай, если кто-то в будущем столкнется с этим.

Я проверил все остальные хорошие подсказки, но ни один из них не пропал в моем проекте.

Что, наконец, решило проблему для меня, так это то, что я забыл объявить MapView в макете, включая полное имя пакета. Ни Eclipse, ни Lint мне об этом не сказали:

<com.google.android.maps.MapView
    ...
    />
person sunadorer    schedule 02.09.2012
comment
Ваш пост мне очень помог Спасибо большое - person raghav chopra; 11.10.2013

Это исключение возникает, даже если все шаги, упомянутые выше, выполнены, но API-ключ не указан для MapView. Просто добавьте ключ API, полученный от Google.

<com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" 
         android:apiKey = "api-key_goes_here"
  >
person Jeevan    schedule 10.12.2013