我的活动允许用户选择地理边界,并通过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 (签名与否)并运行在同一个设备上时,我会得到以下错误:
由: com.google.android.gms.maps.model.LatLngBounds : Parcelable协议引起的: android.os.BadParcelableException: Parcelable协议需要一个在类android.os.BadParcelableException上称为创建者的Parcelable.Creator对象
这种情况发生在网上:
LatLngBounds bounds =
data.getExtras().getParcelable(SelectGameBoundsActivity.RESULT_KEY_MAP_BOUNDS);该设备正在运行最新的Google服务。
有什么想法吗?
发布于 2015-11-15 12:14:06
您可能必须防止ProGuard剥离所需的类。
-keep public class com.google.android.gms.maps.** { public *; }将其添加到pro卫士-project.txt文件中。
https://stackoverflow.com/questions/16044715
复制相似问题