Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android谷歌地图中的空指针异常_Android_Google Maps_Nullpointerexception_Mapfragment - Fatal编程技术网

android谷歌地图中的空指针异常

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

我正在尝试将谷歌地图添加到我的应用程序中。 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)

如何删除此错误

   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);
}
       }
  • 首先使用以下方法检查google地图是否为
    null
    非null

    If(gMap!=null)
    
  • 您是否必须下载标记图标表单URL(或)直接从URL将标记图像添加到标记信息窗口。可以获取网络主线程异常

  • 网络主线程异常导致标记图像
    null
    ,这样您可能会在谷歌地图中得到null指针异常
  • 解决方案:

    onCreate
    方法中添加以下行

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    
    StrictMode.setThreadPolicy(policy);
    
  • 首先使用以下方法检查google地图是否为
    null
    非null

    If(gMap!=null)
    
  • 您是否必须下载标记图标表单URL(或)直接从URL将标记图像添加到标记信息窗口。可以获取网络主线程异常

  • 网络主线程异常导致标记图像
    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获取空指针时粘贴它,除非它在任何设备上都不工作。还有其他选择吗>?