2016-02-16 4 views
3

Я закодировал класс как this.but, когда я использую это есть ошибка выполнения произошла в этом методе overidedAndroidRuntime ошибка: Посылка не может мобилизовывать значение

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeValue(synclistener); 
} 

MyCLASS

public class SyncListenEntity implements Parcelable { 
    private LocationServiceProvider.LocationSyncNotifier synclistener; 

    public LocationServiceProvider.LocationSyncNotifier getSynclistener() { 
     return synclistener; 
    } 

    public void setSynclistener(LocationServiceProvider.LocationSyncNotifier synclistener) { 
     this.synclistener = synclistener; 
    } 

    public SyncListenEntity() { 
    } 

    protected SyncListenEntity(Parcel in) { 
     synclistener = (LocationServiceProvider.LocationSyncNotifier) in.readValue(LocationServiceProvider.LocationSyncNotifier.class.getClassLoader()); 
    } 

    @Override 
    public int describeContents() { 
     return 0; 
    } 

    @Override 
    public void writeToParcel(Parcel dest, int flags) { 
     dest.writeValue(synclistener); 
    } 


    public static final Parcelable.Creator<SyncListenEntity> CREATOR = new Parcelable.Creator<SyncListenEntity>() { 
     @Override 
     public SyncListenEntity createFromParcel(Parcel in) { 
      return new SyncListenEntity(in); 
     } 

     @Override 
     public SyncListenEntity[] newArray(int size) { 
      return new SyncListenEntity[size]; 
     } 
    }; 
} 

LocationNotifier

public interface LocationNotifier { 
    void onNewLocationArrived(Location loaction, String privider); 
} 

Исключение:

java.lang.RuntimeException: Parcel: unable to marshal value 
Caused by: java.lang.RuntimeException: Parcel: unable to marshal value 
    com.library.gps.SyncListenEntity.writeToParcel(SyncListenEntity.java) 
    android.app.ActivityManagerProxy.getIntentSender(ActivityManagerNative.java:3835‌​) 
    com.library.gps.LocationServiceProvider.enableUserTrackingService(LocationServic‌​eProvider.java:64) 
    com.ceylonlinux.multilac.activity.FrmHome.onCreate(FrmHome.java:365) 
+0

Всегда отправляйте полную трассировку стека исключения. –

+0

Также отправьте источник в LocationSyncNotifier. –

+0

Эти ошибки я получил java.lang.RuntimeException: Посылка: не удался маршал значения вызвано следующими причинами: java.lang.RuntimeException: Parcel: неспособный маршал значения com.library.gps.SyncListenEntity.writeToParcel (SyncListenEntity .java) android.app.ActivityManagerProxy.getIntentSender (ActivityManagerNative.java:3835) com.library.gps.LocationServiceProvider.enableUserTrackingService (LocationServiceProvider.java:64) at com.ceylonlinux.multilac.activity.FrmHome.onCreate (FrmHome. java: 365) –

ответ

3

Вы пытаетесь использовать writeParcel(), чтобы написать объект, который не соответствует требованиям, указанным в документации. Вы можете записывать только значения в посылку типов, указанных в javadoc.

Смежные вопросы