2016-08-10 8 views
1

バンドルのロード中にエラーが発生しました。すべての初期化とキャストをチェックしましたが、これを解決できませんでした。これは私が取得エラーですボディ_scaleMeasurementバンドルに値を割り当てる際のClassCastException

package model; 

import android.os.Parcel; 
import android.os.Parcelable; 

import com.google.gson.annotations.SerializedName; 

public class BodyScaleMeasurement implements Parcelable { 

    @SerializedName("id") 
    private String id; 
    @SerializedName("client_platform_version") 
    private String client_platform_version; 
    @SerializedName("client_build_number") 

    @SerializedName("client_platform_data") 
    private Client_platform_data client_platform_data; 
    @SerializedName("ble_device_data") 
    private Ble_device_data ble_device_data; 


    private transient boolean is_synchronized; 

    public BodyScaleMeasurement() { 
    } 

    public BodyScaleMeasurement(String id, String client_platform_version, int client_build_number, Client_platform_data client_platform_data, Ble_device_data ble_device_data, boolean is_synchronized) { 
     this.id = id; 
     this.client_platform_version = client_platform_version; 
     this.client_build_number = client_build_number; 

     this.client_platform_data = client_platform_data; 
     this.ble_device_data = ble_device_data; 

     this.is_synchronized = is_synchronized; 

    } 

    public boolean is_synchronized() { 
     return is_synchronized; 
    } 

    public void setIs_synchronized(boolean is_synchronized) { 
     this.is_synchronized = is_synchronized; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getClient_platform_version() { 
     return client_platform_version; 
    } 

    public void setClient_platform_version(String client_platform_version) { 
     this.client_platform_version = client_platform_version; 
    } 

    public int getClient_build_number() { 
     return client_build_number; 
    } 

    public void setClient_build_number(int client_build_number) { 
     this.client_build_number = client_build_number; 
    } 



    public Client_platform_data getClient_platform_data() { 
     return client_platform_data; 
    } 

    public void setClient_platform_data(Client_platform_data client_platform_data) { 
     this.client_platform_data = client_platform_data; 
    } 

    public Ble_device_data getBle_device_data() { 
     return ble_device_data; 
    } 

    public void setBle_device_data(Ble_device_data ble_device_data) { 
     this.ble_device_data = ble_device_data; 
    } 



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

    @Override 
    public void writeToParcel(Parcel dest, int flags) { 
     dest.writeString(this.id); 
     dest.writeString(this.client_platform_version); 
     dest.writeInt(this.client_build_number); 

     dest.writeParcelable(this.client_platform_data, 0); 
     dest.writeParcelable(this.ble_device_data, 0); 

     dest.writeByte(is_synchronized ? (byte) 1 : (byte) 0); 
    } 

    protected BodyScaleMeasurement(Parcel in) { 
     this.id = in.readString(); 
     this.client_platform_version = in.readString(); 
     this.client_build_number = in.readInt(); 

     this.client_platform_data = in.readParcelable(Client_platform_data.class.getClassLoader()); 
     this.ble_device_data = in.readParcelable(Ble_device_data.class.getClassLoader()); 

     this.is_synchronized = in.readByte() != 0; 
    } 

    public static final Parcelable.Creator<BodyScaleMeasurement> CREATOR = new Parcelable.Creator<BodyScaleMeasurement>() { 
     public BodyScaleMeasurement createFromParcel(Parcel source) { 
      return new BodyScaleMeasurement(source); 
     } 

     public BodyScaleMeasurement[] newArray(int size) { 
      return new BodyScaleMeasurement[size]; 
     } 
    }; 
} 

ため

Bundle bundle = getIntent().getExtras(); 
if (bundle.containsKey("MEASUREMENT_DATA")) { 
    body_scaleMeasurement = bundle.getParcelable("MEASUREMENT_DATA"); 
    evaluate_info(); 
} 

コード: リファレンスを参照してくださいしてください。添付した画像を参考にしてください。

error image

+0

BodyScaleMeasurement.java:338のどの行がありますか? – shmosel

+0

this.ble_device_data = in.readParcelable(Ble_device_data.class.getClassLoader()); –

+0

@shmoselコメントを確認してください –

答えて

-1

ことが可能Client_platform_data implements ParcelableParcelable.Creator<Ble_device_data>を持っていることですか?

+0

これは答えではありません。 OPに質問をする場合は、質問の下に「コメントを追加」を使用します。評判が足りない場合は、他の質問に答えることで評判スコアで作業してください。 –

+0

さて、私は読むだけです。 – atlascoder

0

他の変数のタイプをdoubleからintに変更したために起こっていました。しかし、それは期待されていませんでしたが、私はそれを理解していません。私は変換が行われた変更を元に戻しました。

また、変換後も値に変化がありました。例えば:もし私がキーを使ってバンドルするために50を送っていたら。それはいくつかの負の整数として設定されていました。

+0

これは、問題のある人に役立つかもしれません。これを参照してください。 –

関連する問題