我有 Activity 让用户选择地理范围,并通过 setResult 函数返回它们:
public class MyActivity extends Activity
.
.
buttonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LatLngBounds bounds = map.getProjection().getVisibleRegion().latLngBounds;
Intent result = new Intent();
result.putExtra(RESULT_KEY_MAP_BOUNDS, bounds);
setResult(RESULT_OK, result);
finish();
}
});
调用代码是:. . .
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ACTIVITY_SELECT_GAME_BOUNDS:
if (resultCode == RESULT_OK) {
mapFragment.getView().setVisibility(View.VISIBLE);
LatLngBounds bounds =
data.getExtras().getParcelable(SelectGameBoundsActivity.RESULT_KEY_MAP_BOUNDS);
当我通过 eclipse 运行时,这工作正常,但是当尝试创建一个 APK(签名或未签名)并在同一设备上运行时,我收到以下错误:
引起:android.os.BadParcelableException:Parcelable 协议需要在类 com.google.android.gms.maps.model.LatLngBounds 上名为 CREATOR 的 Parcelable.Creator 对象
这在线上发生:
LatLngBounds bounds =
data.getExtras().getParcelable(SelectGameBoundsActivity.RESULT_KEY_MAP_BOUNDS);
该设备正在运行最新的 Google Play 服务。
有任何想法吗?