0

我是 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 中的活动方面做错了什么?我试过摆弄,但到目前为止无济于事,有人有什么想法吗?

谢谢,

4

1 回答 1

0

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

第 2 步:将您的包更改为不包含package在名称中,以最大程度地减少保留关键字问题的可能性。

步骤#3:删除您的<uses-permission android:name="android.permission.LOCATION"/>线路,因为没有这样的权限。

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

你真正的问题是第 4 步——前三个只是为了清理一下。FWIW,我还建议您对类名遵循 CamelCase 约定。

于 2011-06-30T14:34:54.917 回答