【问题标题】:Mapview in MapActivity Class not found未找到 MapActivity 类中的 Mapview
【发布时间】:2011-03-06 22:58:51
【问题描述】:

我在这里看到其他具有类似症状的线程,但没有一个答案能解决我的问题。我正在关注谷歌地图视图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html 并完全按照所有方向进行操作,我不断收到此错误.. java.lang.ClassNotFoundException: com.goodintechnology.maps.Mymap in loader dalvik.system.PathClassLoader[/data/ app/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;
}
}

如前所述,这完全来自 Google Map View 教程。

【问题讨论】:

  • 你能用你的代码发布完整的跟踪吗?也许里面会有提示?
  • 你的清单中有一个 uses-sdk 吗?正如下面的两个答案所说,uses-libarary 必须在应用程序标签中

标签: android android-mapview


【解决方案1】:
<uses-library android:name="com.google.android.maps" />

必须在

你说你试过了,但你现在的方式,它无论如何都行不通,所以先改变它。

【讨论】:

  • 是的,谢谢,关键是它必须在应用程序标签内。
【解决方案2】:

看起来 maps.jar 未包含在您的项目文件夹中。

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

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

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

【讨论】:

    【解决方案3】:

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

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

    编辑 - 它表示将&lt;uses-library ... /&gt; 添加为&lt;application&gt; 标记的

    这意味着把它放在&lt;application&gt;标签之后&lt;/application&gt;之前。

    【讨论】:

      【解决方案4】:

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

      确保您创建的虚拟 android 设备也包含 Google API。仅在 SDK 中包含 API 并将运行目标设置为包含 Google API 的版本是不够的,您还需要确保您的模拟器虚拟设备也安装了来自 Android SDK 的 Google API。

      【讨论】:

        【解决方案5】:

        我已经修复了在另一个位置安装 Eclipse 和安装 Android 插件 (ADT) 时的错误。这对我有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-21
          • 2011-09-29
          相关资源
          最近更新 更多