3

當我有活動,可以讓用戶選擇的地域界限,並通過的setResult函數返回他們:BadParcelableException與谷歌地圖部署

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服務。

任何想法?

+0

同樣的問題在這裏,你有沒有找到解決方案? – Klemens

回答

0

您可能必須防止ProGuard剝離所需的類。

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

將此項添加到您的proguard-project.txt文件中。