找不到MapActivity类中的Mapview

时间:2011-03-06 22:58:51

标签: android android-mapview

我在这里看到其他线程有类似的症状,但没有一个答案解决了我的问题。我正在关注谷歌地图视图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html并完全遵循所有方向,我不断收到此错误.. java.lang.ClassNotFoundException:com.goodintechnology.maps.Mymap in loader dalvik.system.PathClassLoader [/数据/应用/ com.goodintechnology.maps-1.apk]

我从头开始很多次,但每次,只要我将Activity更改为MapActivity,就会抛出错误。应用目标是Google API 2.2,模拟器是相同的,启用了GPS。我已经尝试在Applications语句之前,之后和之中放置uses-library语句,但这并没有改变任何东西。我甚至尝试将语句垂直放在清单中。所以,经过大约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;
}
}

如上所述,这一切都直接来自谷歌地图视图教程。

5 个答案:

答案 0 :(得分:25)

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

必须在&lt; application&gt;范围内&LT; /应用程序&gt;

你说你试过了,但你现在如何拥有它,它不会有任何机会,所以先改变它。

答案 1 :(得分:15)

看起来你的项目文件夹中没有包含maps.jar。

首先将以下行作为应用程序的子项放在清单文件中

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

然后右键单击您的项目文件夹 - &gt;属性 - &gt; Android - &gt;在“项目构建目标”中,检查是否仅为Google API选中了复选框。 如果没有检查。这将在您的项目中添加maps.jar,然后您的项目将了解什么是MapActivity .. :)

答案 2 :(得分:4)

您是否下载了正在使用的SDK版本的Google API插件?

Google API未与标准SDK一起打包。您必须使用AVD Manager下载它们。

修改 - 它会将<uses-library ... />添加为<application>代码的

这意味着将其放在<{strong> <application>标记之后<{1}}之前的行。

答案 3 :(得分:0)

在创建新的Android虚拟设备之前,我遇到了完全相同的问题。

确保您创建了一个也包含Google API的虚拟Android设备..只需在SDK中使用API​​并将运行目标设置为包含Google API的版本是不够的,您还需要确保您的模拟器虚拟设备也安装了Android SDK中的Google API。

答案 4 :(得分:0)

我修复了在其他位置安装eclipse并安装Android插件(ADT)的错误。这对我有用。