为什么google map v2突然崩溃了java.lang.NullPointerException:尝试获取null数组的长度?

Ale*_*oba 13 java android google-maps

我有一个由NullPointerException引起的问题.当我尝试做mMapView.onCreate(savedInstanceState)时,应用程序今天开始崩溃; 但昨天没事.我只是将我的布局文件更改为另一个(类似)另一个名称.这是例外:

E/AndroidRuntime:FATAL EXCEPTION:main进程:com.parking.android,PID:17585 java.lang.NullPointerException:尝试在maps.VNa(未知来源)的maps.Gaa(未知来源)处获取null数组的长度.aa(未知来源)位于maps.ad.ae.a(未知来源)的maps.Dpa(未知来源)位于maps.ad.a(未知来源)的地图上,位于uo.onTransact的maps.ad.Ra(未知来源) (:com.google.android.gms.DynamiteModulesB:66)在android.os.Binder.transact(Binder.java:385)com.google.android.gms.internal.IMapViewDelegate $ zza $ zza.onCreate( com.google.android.gms上com.google.android.gms.maps.MapView $ zza.onCreate(未知来源)com.google.android.gms.dynamic.zza $ 3.zzb(未知来源)com.google.android.gms www.dynamic.zza $ 1.zza(未知来源)com.google.android.gms.maps.MapView $ zzb.zzbow(未知来源)com.google.android.gms.maps.MapView $ zzb.zza(未知来源)来自com.goog上com.google.android.gms.dynamic.zza.onCreate(未知来源)的com.google.android.gms.dynamic.zza.zza(未知来源)le.android.gms.maps.MapView.onCreate(Unknown Source)位于com.parking.android.map.fragment.MapsFragment.initMap(MapsFragment.java:105)com.parking.android.map.fragment.MapsFragment.onCreateView (MapsFragment.java:92)在android的android.support.android.base_arch.fragment.BaseFragment.onCreateView(BaseFragment.java:48)上的android.support.v4.app.Fragment.performCreateView(Fragment.java:1974).在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)的android.support.v4.app.BackStackRecord.run(BackStackRecord.)中的support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067). java:742)在android.sos.Handler上的android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)android.support.v4.app.FragmentManagerImpl $ 1.run(FragmentManager.java:517). handleCallback(Handler.java:815)位于android.app.AtoT.Thread.main上的android.os.Handler.dispatchMessage(Handler.java:104)android.os.Looper.loop(Looper.java:194)处.(ActivityThread.java):5550)at java.lang.reflect.Method.invoke(Native Method)at java.lang.reflect.Method.invoke(Method.java:372)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit) .java:955)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)

这是我的一些mapView代码:

@Override
protected void onCreateView(Bundle savedInstanceState) {
    super.onCreateView(savedInstanceState);
    initMap(savedInstanceState);
}
private void initMap(Bundle savedInstanceState) {
    mMapView.onCreate(savedInstanceState);
    mMapView.onResume();
    try {
        MapsInitializer.initialize(getActContext());
    } catch (Exception e) {
        e.printStackTrace();
    }
    mMapView.getExtendedMapAsync(this);
    locationManager = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE);
    try {
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 400, 1000, this);
    } catch (SecurityException e) {
        Log.e(TAG, "onLocationChanged: ", e);
    }
}
@Override
public void onPause() {
    mMapView.onPause();
    super.onPause();
}

@Override
public void onResume() {
    super.onResume();
    mMapView.onResume();
}

@Override
public void onDestroy() {
    mMapView.onDestroy();
    super.onDestroy();
}
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    presenter.getParkings();
    mMap.setOnMarkerClickListener(this);
    mMap.setMyLocationEnabled(true);
    mMap.getUiSettings().setMyLocationButtonEnabled(false);

}
@Override
public void onLocationChanged(Location location) {
    if (mMap == null)
        return;
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 14);
    mMap.animateCamera(cameraUpdate);
    try {
        locationManager.removeUpdates(this);
    } catch (SecurityException e) {
        Log.e(TAG, "onLocationChanged: ", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

Gre*_*der 7

编辑2:此错误已在最新版本的Google地图上解决.

编辑:用户已指出此错误也发生在7.0设备中,因此请记住,您可能会更改android:maxSdkVersion="22"为适当的Sdk版本.

这个问题只发生在具有Resurrection Remix等自定义roms的5.1.1设备中.我不知道原因,但你可以解决它加给你的表现,在看到/sf/answers/2778777361//sf/answers/2780718951/.

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="22" />
<uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="22" />
Run Code Online (Sandbox Code Playgroud)