我最近为Android应用程序生成了一个新的api密钥,现在每当我尝试使用谷歌地图的部分应用程序时它都会崩溃。
有人知道问题是什么吗?
在我更新api密钥之前,我没有改变任何代码,它完美无缺地工作。
感谢。
05-03 00:26:20.699: E/AndroidRuntime(11859): FATAL EXCEPTION: main
05-03 00:26:20.699: E/AndroidRuntime(11859): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.menuexample/com.example.menuexample.RouteViewActivity}: java.lang.NullPointerException
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.os.Looper.loop(Looper.java:137)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-03 00:26:20.699: E/AndroidRuntime(11859): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 00:26:20.699: E/AndroidRuntime(11859): at java.lang.reflect.Method.invoke(Method.java:511)
05-03 00:26:20.699: E/AndroidRuntime(11859): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-03 00:26:20.699: E/AndroidRuntime(11859): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-03 00:26:20.699: E/AndroidRuntime(11859): at dalvik.system.NativeStart.main(Native Method)
05-03 00:26:20.699: E/AndroidRuntime(11859): Caused by: java.lang.NullPointerException
05-03 00:26:20.699: E/AndroidRuntime(11859): at com.example.menuexample.RouteViewActivity.setUpMap(RouteViewActivity.java:121)
05-03 00:26:20.699: E/AndroidRuntime(11859): at com.example.menuexample.RouteViewActivity.setUpMapIfNeeded(RouteViewActivity.java:111)
05-03 00:26:20.699: E/AndroidRuntime(11859): at com.example.menuexample.RouteViewActivity.onCreate(RouteViewActivity.java:61)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.Activity.performCreate(Activity.java:5104)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-03 00:26:20.699: E/AndroidRuntime(11859): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-03 00:26:20.699: E/AndroidRuntime(11859): ... 11 more
更新
好吧,这似乎是位置管理器的问题(返回null):
locMan = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locMan.getBestProvider(criteria, false);
loc = locMan.getLastKnownLocation(provider);
清单
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
好吧,这绝对是我的位置管理员没有得到我的位置。
任何帮助将不胜感激。我很紧张。
答案 0 :(得分:1)
你能看到MapView中的网格。如果是,那么可能是你没有得到该位置。但是如果你没有得到它并且你的应用程序崩溃了,请检查你的清单以便以下
<uses-library android:name=”com.google.android.maps” />
答案 1 :(得分:0)
getLastKnownLocation
通常可以返回null。在这种情况下,你应该使用requestLocationUpdates。