17

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

清单文件是这个

4

9 回答 9

52

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

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

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

2) 扩展 MapActivity 而不是 Activity。

请享用!

于 2011-10-04T07:39:39.483 回答
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;
    }
}
于 2011-07-04T08:22:33.140 回答
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中遵循这些指示

我希望这可以帮助别人

于 2012-02-05T00:07:22.207 回答
3

我有问题。只需扩展 MapActivity 而不是 Activity。

于 2012-03-01T02:52:54.037 回答
1

除了使用标签之外,还可以使用谷歌地图

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

在标签中,使用另一个标签

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

在标签内,你就完成了。

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

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

于 2012-02-06T10:22:59.407 回答
1

您运行应用程序的模拟器没有 google map jar。所以从谷歌 API创建模拟器在那里运行你的应用程序。

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

在此处输入图像描述

于 2011-07-01T07:50:27.807 回答
1

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

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

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

<com.google.android.maps.MapView
    ...
    />
于 2012-09-02T19:35:30.247 回答
1

将此插入到 MapView 的 xml 声明中

xmlns:android="http://schemas.android.com/apk/res/android"
于 2011-11-09T03:43:08.153 回答
0

即使遵循上述所有步骤但未为 MapView 指定 api-key,也会出现此异常。只需添加您从 google 获得的 api-key

<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"
  >
于 2013-12-10T10:51:46.740 回答