部署Google Maps时出现BadParcelableException异常

3

我有一个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文件(签名或未签名)并在同一设备上运行时,会出现以下错误:
“Caused by: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.google.android.gms.maps.model.LatLngBounds”
这个错误发生在以下代码行:
LatLngBounds bounds = 
                       data.getExtras().getParcelable(SelectGameBoundsActivity.RESULT_KEY_MAP_BOUNDS);

该设备正在运行最新的Google Play服务。
有什么想法吗?

这里也有同样的问题,你找到解决方案了吗? - Klemens Zleptnig
1个回答

0

你可能需要防止ProGuard剥离所需的类。

-keep public class com.google.android.gms.maps.** { public *; }

将此代码添加到您的proguard-project.txt文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接