0

每次我尝试运行我的应用程序时,我都会收到此错误:

不幸已经停止了

资源:

package com.example.mapsapp;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

import android.os.Bundle;
import android.view.Menu;


public class HichRideActivity extends MapActivity
{


    MapController mControl;
    GeoPoint geop;
    MapView mapV;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hich_ride);

        mapV= (MapView) findViewById(R.id.menu_settings);
        mapV.displayZoomControls(true);
        mapV.setBuiltInZoomControls(true);


        double lat= 40.8;
        double longi=-96.666;

        geop = new GeoPoint ((int)(lat * 1E6), (int)(longi * 1E6));
        mControl.animateTo(geop);
        mControl.setZoom(13);

    }


   @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
       getMenuInflater().inflate(R.menu.activity_hich_ride, menu);
        return true;
   }

    @Override
    protected boolean isRouteDisplayed()
    {
        // TODO Auto-generated method stub
        return false;
    }


}

这是logcat,它说我有NullPointerException,但我不知道哪个参数是null

日志猫:

07-31 13:40:46.344: E/Trace(1043): 打开跟踪文件时出错: 没有这样的文件或目录 (2)
07-31 13:40:47.134: D/AndroidRuntime(1043): 关闭虚拟机
07-31 13:40:47.134: W/dalvikvm(1043): threadid=1: 线程以未捕获的异常退出 (group=0x40a13300)
07-31 13:40:47.194: D/dalvikvm(1043): GC_CONCURRENT freed 195K, 3% free 8273K/8519K, paused 80ms+5ms,总共166ms
07-31 13:40:47.194: D/dalvikvm(1043): WAIT_FOR_CONCURRENT_GC 阻塞 26ms
07-31 13:40:47.194:E/AndroidRuntime(1043):致命异常:主要
07-31 13:40:47.194: E/AndroidRuntime(1043): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.mapsapp/com.example.mapsapp.HichRideActivity}: java.lang.NullPointerException
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread.access$600(ActivityThread.java:130)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.os.Handler.dispatchMessage(Handler.java:99)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.os.Looper.loop(Looper.java:137)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread.main(ActivityThread.java:4745)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 java.lang.reflect.Method.invokeNative(Native Method)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 java.lang.reflect.Method.invoke(Method.java:511)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-31 13:40:47.194: E/AndroidRuntime(1043): at dalvik.system.NativeStart.main(Native Method)
07-31 13:40:47.194: E/AndroidRuntime(1043): 由: java.lang.NullPointerException 引起
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 com.example.mapsapp.HichRideActivity.onCreate(HichRideActivity.java:27)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.Activity.performCreate(Activity.java:5008)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-31 13:40:47.194: E/AndroidRuntime(1043): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
07-31 13:40:47.194: E/AndroidRuntime(1043): ... 11 更多
07-31 13:40:47.214: W/CursorWrapperInner(1043): 游标在没有事先关闭的情况下完成()
07-31 13:40:47.214: W/CursorWrapperInner(1043): 游标在没有事先关闭的情况下完成()
4

2 回答 2

1
mapV= (MapView) findViewById(R.id.menu_settings);
                                  ^^^^^^^^^^^^^

this should be ID of MapView and it should declare in activity_hich_ride.xml

于 2012-07-31T14:02:52.993 回答
0

这些行:mControl.animateTo(geop); mControl.setZoom(13); 是你的问题。您正在使用MapController尚未创建的 a ,您在类的顶部声明了它,但您从未实例化它 - 因此,在您声明您的之后MapView,添加以下行 : mControl = mapV.getController();。试试看,让我知道它是否有效!

于 2012-07-31T14:05:22.953 回答