我有一个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服务。
有什么想法吗?
答案 0 :(得分:0)
您可能必须阻止ProGuard剥离所需的类。
-keep public class com.google.android.gms.maps.** { public *; }
将其添加到您的proguard-project.txt文件中。