错误膨胀类com.google.android.maps.MapView

时间:2011-07-01 07:35:48

标签: android google-maps map android-mapview inflate

我只是关注一个简​​单的地图教程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="***"
/>

和manifestfile就是这个

9 个答案:

答案 0 :(得分:51)

我遇到了这个问题并通过以下两个步骤解决了这个问题:

1)将以下行放在AndroidManifest.xml文件的应用程序(重要)元素中。

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

2)扩展MapActivity而不是Activity。

享受!

答案 1 :(得分:12)

您是否将主类扩展为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;
    }
}

答案 2 :(得分:5)

我有同样的问题,大约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)我没有指定在

下的min 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 :(得分:3)

我遇到了问题。只需扩展MapActivity而不是Activity。

答案 4 :(得分:1)

运行该应用程序的模拟器没有谷歌地图jar。所以从 Google API 创建模拟器在那里运行您的应用程序。

查看图片以使用Google API创建模拟器

enter image description here

答案 5 :(得分:1)

将其插入MapView的xml声明

xmlns:android="http://schemas.android.com/apk/res/android"

答案 6 :(得分:1)

除了使用标记

外,还可以使用谷歌地图
<uses-library android:name="com.google.android.maps" /> 
标签中的

,使用另一个标签

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

在标签内部,你就完成了。

但请记住,您应该在与Google Inc. API兼容的AVD中运行此应用程序,但不能在Android API中运行。

另一个重要的事情是,确保您使用的是MD5 API密钥而不是SHA1或任何其他协议API密钥。

答案 7 :(得分:1)

我知道以下不是原始提问者的错误 - 但由于我的问题导致了相同的错误消息,我想我也可以添加它以防将来有人遇到它。

我检查了所有其他好的提示,但我的项目中没有一个丢失。

最终解决了我的问题是,我忘了在布局中声明MapView,包括完整的包名。 Eclipse和Lint都没有告诉我这件事:

<com.google.android.maps.MapView
    ...
    />

答案 8 :(得分:0)

即使遵循上面提到的所有步骤但是没有为MapView指定api-key,也会得到此异常。只需添加api-key which you got from 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"
  >