Running slightly modified example of Google Maps throws BadParcelableException
in the Google Maps code. The LatLng
class is parcelable but it cannot be found. It seems that Google Maps code is trying to unparcel the object that was not parcelled by it. What cases the problem?
package com.example.mapdemo;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
public class RawMapViewDemoActivity extends android.support.v4.app.FragmentActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.raw_mapview_demo);
mMapView = (MapView) findViewById(R.id.map);
mMapView.onCreate(savedInstanceState);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
outState.putParcelable("marker", new LatLng(0, 0));
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
LatLng ll = savedInstanceState.getParcelable("marker");
}
}
...
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.mapdemo/com.example.mapdemo.RawMapViewDemoActivity}:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling:
com.google.android.gms.maps.model.LatLng
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2832)
at android.app.ActivityThread.access$1600(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.BadParcelableException:
ClassNotFoundException when unmarshalling: com.google.android.gms.maps.model.LatLng
at android.os.Parcel.readParcelable(Parcel.java:1958)
at android.os.Parcel.readValue(Parcel.java:1846)
at android.os.Parcel.readMapInternal(Parcel.java:2083)
at android.os.Bundle.unparcel(Bundle.java:208)
at android.os.Bundle.getBundle(Bundle.java:1078)
at com.google.android.gms.maps.internal.MapStateHelper
.getParcelableFromMapStateBundle(MapStateHelper.java:41)
at maps.y.ae.a(Unknown Source)
at maps.y.bm.onCreate(Unknown Source)
at com.google.android.gms.maps.internal.IMapViewDelegate$Stub
.onTransact(IMapViewDelegate.java:66)
at android.os.Binder.transact(Binder.java:279)
at com.google.android.gms.maps.internal.IMapViewDelegate$a$a
.onCreate(Unknown Source)
at com.google.android.gms.maps.MapView$b.onCreate(Unknown Source)
at com.google.android.gms.internal.c$3.a(Unknown Source)
at com.google.android.gms.internal.i.b(Unknown Source)
at com.google.android.gms.maps.MapView$a.a(Unknown Source)
at com.google.android.gms.maps.MapView$a.a(Unknown Source)
at com.google.android.gms.internal.c.a(Unknown Source)
at com.google.android.gms.internal.c.onCreate(Unknown Source)
at com.google.android.gms.maps.MapView.onCreate(Unknown Source)
at com.example.mapdemo.RawMapViewDemoActivity
.onCreate(RawMapViewDemoActivity.java:40)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
... 12 more