【问题标题】:Google Maps saying "unfortunately, <app name> has stopped"谷歌地图说“很遗憾,<app name> 已停止”
【发布时间】:2012-07-29 07:42:11
【问题描述】:

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

不幸的是,已经停止了

来源:

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

logcat:

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): 游标在没有事先 close() 的情况下完成

【问题讨论】:

  • 你在“第 27 行”是什么意思?对不起,我没明白

标签: android google-maps


【解决方案1】:
mapV= (MapView) findViewById(R.id.menu_settings);
                                  ^^^^^^^^^^^^^

这应该是MapViewID,并且应该在activity_hich_ride.xml 中声明

【讨论】:

  • 我认为这是问题所在,我从哪里得到这个 ID?还是我应该创建它?
  • 你应该声明MapView activity_hich_ride.xml
  • this链接阅读step-5
  • 感谢它现在已修复,但还有另一个问题,我没有看到任何地图。并收到此错误:“E/MapActivity(779): 无法获取连接工厂客户端”
【解决方案2】:

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

【讨论】:

  • 谢谢,但我现在有另一个问题,我没有看到任何地图。该应用程序已打开,但我没有看到地图我在 logCat “无法获取连接工厂客户端”中收到此错误
  • 对 - 您是否在清单中声明了正确的权限等?看看这个:stackoverflow.com/questions/5763789/…
  • 您是否在包含 MapView 的 XML 文件中输入了您的 Android API 密钥?
  • 是 android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="******"
  • 好吧...好吧,我不知道还有什么可能,我假设您正在使用支持 Google 地图服务器的连接。在您的设备上打开 Google 地图应用,看看它是否正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2015-09-12
  • 2014-10-23
相关资源
最近更新 更多