尝试使用Android Mapview类时出现问题

时间:2011-06-30 12:48:06

标签: android maps android-mapview manifest mapactivity

我是Android的菜鸟,所以请耐心等待,如果我的帖子是愚蠢的话,请道歉。 基本上,我正在尝试向XML添加mapview,这会导致一些问题,我得到的错误是:

06-30 12:29:04.760: ERROR/AndroidRuntime(320): java.lang.NoClassDefFoundError: package.android.mapclass

据我所知,这次电话会发生错误:

Intent i = new Intent(oldclass.this, mapclass.class);

地图类本身是:

package package.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.maps.MapView;
import com.google.android.maps.MapActivity;
import android.util.Log;

public class mapclass extends MapActivity {
   public void onCreate(Bundle savedInstanceState)
   {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewmap);

   protected boolean isRouteDisplayed() {
        return false;
   }
}

如果换掉

,这里就会变得有趣
public class mapclass extends MapActivity {

并将其替换为

public class mapclass extends Activity {

然后它绝对正常工作(虽然没有调用MapActivity调用)。 清单中有地图的参考:

<manifest   xmlns:android="http://schemas.android.com/apk/res/android"
        package="package.android"
        android:versionCode="1"
        android:versionName="1.0">
<uses-sdk   android:minSdkVersion="7" />
<uses-permission android:name="android.permission.LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-library android:name="com.google.android.maps" />
<uses-library android:name="com.google.android.maps.MapView" />
<uses-library android:name="com.google.android.maps.MapActivity" />

<application    android:icon="@drawable/icon"
                android:label="@string/app_name">

我猜我在xml中的活动方面做了一些可怕的错误?我试过摆弄,但到目前为止无济于事,有没有人有任何想法?

谢谢,

1 个答案:

答案 0 :(得分:0)

第1步:删除第二个和第三个<uses-library>元素。

步骤2:将您的包更改为不包含package作为名称的一部分,以最大限度地减少保留关键字问题的可能性。

第3步:删除<uses-permission android:name="android.permission.LOCATION"/>行,因为没有此类许可。

步骤4:在安装了Google地图的设备或模拟器上运行您的应用程序。

你真正的问题是第4步 - 前三个只是为了清理一下。 FWIW,我还建议您遵循CamelCase惯例作为您的班级名称。