Ошибка надувания класса com.google.android.maps.MapView - PullRequest
18 голосов
/ 01 июля 2011

Я просто следую простому учебнику по карте 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="***"
/>

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

Ответы [ 9 ]

52 голосов
/ 04 октября 2011

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

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

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

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

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

12 голосов
/ 04 июля 2011

Вы расширили основной класс как 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;
    }
}
5 голосов
/ 05 февраля 2012

У меня была такая же проблема, и около 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 в режиме отладки, следуйте этим инструкциям в вашем cmd или терминале http://www.buzztouch.com/resources/Obtaining_a_Google_Maps_API_Key_v1.0.pdf

Надеюсь, это кому-нибудь поможет

3 голосов
/ 01 марта 2012

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

1 голос
/ 02 сентября 2012

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

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

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

<com.google.android.maps.MapView
    ...
    />
1 голос
/ 06 февраля 2012

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

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

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

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

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

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

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

1 голос
/ 09 ноября 2011

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

xmlns:android="http://schemas.android.com/apk/res/android"
1 голос
/ 01 июля 2011

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

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

enter image description here

0 голосов
/ 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"
  >
...