android谷歌地图中的空指针异常
我正在尝试将谷歌地图添加到我的应用程序中。 logcat窗口显示此错误: 由android.app.Activity.performCreate(Activity.java:5104)中com.example.mymaps.MainActivity.onCreate(MainActivity.java:27)处的java.lang.NullPointerException引起 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 如何删除此错误android谷歌地图中的空指针异常,android,google-maps,nullpointerexception,mapfragment,Android,Google Maps,Nullpointerexception,Mapfragment,我正在尝试将谷歌地图添加到我的应用程序中。 logcat窗口显示此错误: 由android.app.Activity.performCreate(Activity.java:5104)中com.example.mymaps.MainActivity.onCreate(MainActivity.java:27)处的java.lang.NullPointerException引起 位于android.app.Instrumentation.callActivityOnCreate(Instrumen
Main xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
LogCat窗口:
08-13 23:32:27.279:E/AndroidRuntime(1010):致命异常:main
08-13 23:32:27.279:E/AndroidRuntime(1010):java.lang.RuntimeException:无法启动活动组件信息{com.example.mymaps/com.example.mymaps.MainActivity}:java.lang.NullPointerException
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
08-13 23:32:27.279:E/AndroidRuntime(1010):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.ActivityThread.access$600(ActivityThread.java:141)
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.os.Handler.dispatchMessage(Handler.java:99)上
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.os.Looper.loop(Looper.java:137)
08-13 23:32:27.279:E/AndroidRuntime(1010):位于android.app.ActivityThread.main(ActivityThread.java:5039)
08-13 23:32:27.279:E/AndroidRuntime(1010):位于java.lang.reflect.Method.Invokenactive(本机方法)
08-13 23:32:27.279:E/AndroidRuntime(1010):在java.lang.reflect.Method.invoke(Method.java:511)
08-13 23:32:27.279:E/AndroidRuntime(1010):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-13 23:32:27.279:E/AndroidRuntime(1010):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
8-13 23:32:27.279:E/AndroidRuntime(1010):在dalvik.system.NativeStart.main(本机方法)
08-13 23:32:27.279:E/AndroidRuntime(1010):由以下原因引起:java.lang.NullPointerException
08-13 23:32:27.279:E/AndroidRuntime(1010):位于com.example.mymaps.MainActivity.onCreate(MainActivity.java:27)
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.Activity.performCreate(Activity.java:5104)上
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)上
08-13 23:32:27.279:E/AndroidRuntime(1010):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
8-13 23:32:27.279:E/AndroidRuntime(1010):。。。11更多可能是由于播放服务问题。所以在使用map之前,空检查map对象,这样它就会自动请求在设备中下载map。请尝试并回复
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
if(map!=null){
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
}
这可能是由于播放服务问题。所以在使用map之前,空检查map对象,这样它就会自动请求在设备中下载map。请尝试并回复
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
if(map!=null){
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
}
null
或非null
:
If(gMap!=null)
null
,这样您可能会在谷歌地图中得到null指针异常onCreate
方法中添加以下行
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
null
或非null
:
If(gMap!=null)
null
,这样您可能会在谷歌地图中得到null指针异常onCreate
方法中添加以下行
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
您的
onCreate
方法中的第27行是哪一行?该问题已解决。但我在手机里看不到任何地图。只需在左下角显示“放大”和“缩小”符号以及“谷歌”。但是没有地图。为什么会发生这种情况?在您的onCreate
方法中,第27行是哪一行?该问题已得到解决。但我在手机里看不到任何地图。只需在左下角显示“放大”和“缩小”符号以及“谷歌”。但是没有地图。为什么会这样?非常感谢。它不再显示这个例外。但当我在手机上安装apk时,我看不到任何地图。只有放大和缩小的标志,左边显示“谷歌”。但是没有地图。为什么会这样?你的手机没有平台服务。请下载google playservice for mapI,并在我的手机中安装google playservice。但它仍然不工作?对我来说,这是一些设备由于播放服务的问题。您是在某个设备中还是在所有设备中都面临此问题?。请在logcat获取空指针时粘贴它,除非它在任何设备上都不工作。还有其他选择吗>?非常感谢。它不再显示这个例外。但当我在手机上安装apk时,我看不到任何地图。只有放大和缩小的标志,左边显示“谷歌”。但是没有地图。为什么会这样?你的手机没有平台服务。请下载google playservice for mapI,并在我的手机中安装google playservice。但它仍然不工作?对我来说,这是一些设备由于播放服务的问题。您是在某个设备中还是在所有设备中都面临此问题?。请在logcat获取空指针时粘贴它,除非它在任何设备上都不工作。还有其他选择吗>?