Android 面对此java.lang.IllegalStateException:在实现Parcelable的模型类中,束长度未按4:9对齐 公共类配置文件实现了可包裹{ @SerializedName(“profileName”) 私有字符串profileName; @SerializedName(“暂停”) 私用布尔值; @SerializedName(“numberOfDevices”) 私人设备; 私人选举; 公共配置文件(字符串profileName,布尔值isPaused,int 数量(设备){ this.profileName=profileName; this.isPaused=isPaused; this.numberOfDevices=numberOfDevices; } 受保护的纵断面(地块中){ profileName=in.readString(); isPaused=(布尔值) in.readValue(boolean.class.getClassLoader()); isSelected=(布尔值) in.readValue(boolean.class.getClassLoader()); numberOfDevices=in.readInt(); } 公共静态最终创建者=新创建者 .() { @凌驾 公共配置文件createFromParcel(地块中){ 返回新的配置文件(在中); } @凌驾 公共配置文件[]新数组(整数大小){ 返回新的配置文件[大小]; } }; 公共字符串getProfileName(){ 返回profileName; } public void setProfileName(字符串profileName){ this.profileName=profileName; } 公共布尔getPaused(){ 返回是有理由的; } public void setPaused(布尔值已暂停){ i暂停=暂停; } public int getNumberOfDevices(){ 返回设备数量; } 公共无效setNumberOfDevices(int numberOfDevices){ this.numberOfDevices=numberOfDevices; } 公选{ 选举产生的回报; } 已选择公共无效设置(已选择布尔值){ isSelected=已选择; } @凌驾 公共int描述内容(){ 返回0; } @凌驾 公共无效写入包裹(包裹目的地,内部标志){ 目的地writeString(档案名称); 目的地写入值(已暂停); 目的写入(设备数量); 目的书面价值(已选定); }

Android 面对此java.lang.IllegalStateException:在实现Parcelable的模型类中,束长度未按4:9对齐 公共类配置文件实现了可包裹{ @SerializedName(“profileName”) 私有字符串profileName; @SerializedName(“暂停”) 私用布尔值; @SerializedName(“numberOfDevices”) 私人设备; 私人选举; 公共配置文件(字符串profileName,布尔值isPaused,int 数量(设备){ this.profileName=profileName; this.isPaused=isPaused; this.numberOfDevices=numberOfDevices; } 受保护的纵断面(地块中){ profileName=in.readString(); isPaused=(布尔值) in.readValue(boolean.class.getClassLoader()); isSelected=(布尔值) in.readValue(boolean.class.getClassLoader()); numberOfDevices=in.readInt(); } 公共静态最终创建者=新创建者 .() { @凌驾 公共配置文件createFromParcel(地块中){ 返回新的配置文件(在中); } @凌驾 公共配置文件[]新数组(整数大小){ 返回新的配置文件[大小]; } }; 公共字符串getProfileName(){ 返回profileName; } public void setProfileName(字符串profileName){ this.profileName=profileName; } 公共布尔getPaused(){ 返回是有理由的; } public void setPaused(布尔值已暂停){ i暂停=暂停; } public int getNumberOfDevices(){ 返回设备数量; } 公共无效setNumberOfDevices(int numberOfDevices){ this.numberOfDevices=numberOfDevices; } 公选{ 选举产生的回报; } 已选择公共无效设置(已选择布尔值){ isSelected=已选择; } @凌驾 公共int描述内容(){ 返回0; } @凌驾 公共无效写入包裹(包裹目的地,内部标志){ 目的地writeString(档案名称); 目的地写入值(已暂停); 目的写入(设备数量); 目的书面价值(已选定); },android,parcelable,illegalstateexception,Android,Parcelable,Illegalstateexception,} 我想通过intents传递profile对象,因此我创建了实现Parcelable的模型类。这是我的模型类,它实现了Parcelable。我的模范班 包含两个布尔字段,其中我对“isSelect”有问题 字段,而不是“isPaused”字段。我不知道这是为什么。我 在线搜索,但没有得到任何解决方案。坠机记录我 见下表: java.lang.IllegalStateException:包长度未按4:9对齐 在android.app.ActivityThread.performLaunchAct

}

我想通过intents传递profile对象,因此我创建了实现Parcelable的模型类。这是我的模型类,它实现了Parcelable。我的模范班 包含两个布尔字段,其中我对“isSelect”有问题 字段,而不是“isPaused”字段。我不知道这是为什么。我 在线搜索,但没有得到任何解决方案。坠机记录我 见下表:

java.lang.IllegalStateException:包长度未按4:9对齐
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3447)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3594)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2146)
位于android.os.Handler.dispatchMessage(Handler.java:107)
位于android.os.Looper.loop(Looper.java:237)
位于android.app.ActivityThread.main(ActivityThread.java:7762)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
原因:java.lang.IllegalStateException:包长度未按4:9对齐
位于android.os.BaseBundle.ReadFromParceliner(BaseBundle.java:1615)
位于android.os.BaseBundle。(BaseBundle.java:143)
位于android.os.Bundle(Bundle.java:95)
位于android.os.Parcel.readBundle(Parcel.java:2301)
位于android.os.Parcel.readValue(Parcel.java:2946)
位于com.centurylink.ctl_droid_wrap.models.Profile.(Profile.java:34)
位于com.centurylink.ctl_droid_wrap.models.Profile$1.createFromParcel(Profile.java:41)
位于com.centurylink.ctl_droid_wrap.models.Profile$1.createFromParcel(Profile.java:38)
位于android.os.Parcel.readParcelable(Parcel.java:2990)
位于android.os.Parcel.readValue(Parcel.java:2883)
位于android.os.Parcel.ReadyArrayMapInternal(Parcel.java:3261)
在android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
位于android.os.BaseBundle.unparcel(BaseBundle.java:236)
位于android.os.Bundle.getParcelable(Bundle.java:951)
如果我将此代码替换为现有纵断面(地块中),则效果良好


如果我将此代码替换为现有纵断面(地块中)它工作正常

请分享此功能的完整代码class@greeble31我更新了详细信息。请不要使用布尔类加载器,而是尝试存储为整数0或1,并在构造函数上转换回布尔值。请共享此类的完整代码class@greeble31我更新了详细信息。请尝试将其存储为整数0或1,而不是使用布尔类加载器并在构造上转换回布尔值
public class Profile implements Parcelable {
@SerializedName("profileName")
private String profileName;
@SerializedName("paused")
private boolean isPaused;
@SerializedName("numberOfDevices")
private int numberOfDevices;

private boolean isSelected;

public Profile(String profileName, Boolean isPaused, int 
numberOfDevices) {
    this.profileName = profileName;
    this.isPaused = isPaused;
    this.numberOfDevices = numberOfDevices;
}

protected Profile(Parcel in) {
    profileName = in.readString();
    isPaused = (boolean) 
in.readValue(boolean.class.getClassLoader());
    isSelected = (boolean) 
in.readValue(boolean.class.getClassLoader());
    numberOfDevices = in.readInt();
}

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

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

public String getProfileName() {
    return profileName;
}

public void setProfileName(String profileName) {
    this.profileName = profileName;
}

public Boolean getPaused() {
    return isPaused;
}

public void setPaused(Boolean paused) {
    isPaused = paused;
}

public int getNumberOfDevices() {
    return numberOfDevices;
}

public void setNumberOfDevices(int numberOfDevices) {
    this.numberOfDevices = numberOfDevices;
}

public boolean isSelected() {
    return isSelected;
}

public void setSelected(boolean selected) {
    isSelected = selected;
}

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



@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(profileName);
    dest.writeValue(isPaused);
    dest.writeInt(numberOfDevices);
    dest.writeValue(isSelected);
}
java.lang.IllegalStateException: Bundle length is not aligned by 4: 9
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3447)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3594)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2146)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7762)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
     Caused by: java.lang.IllegalStateException: Bundle length is not aligned by 4: 9
        at android.os.BaseBundle.readFromParcelInner(BaseBundle.java:1615)
        at android.os.BaseBundle.<init>(BaseBundle.java:143)
        at android.os.Bundle.<init>(Bundle.java:95)
        at android.os.Parcel.readBundle(Parcel.java:2301)
        at android.os.Parcel.readValue(Parcel.java:2946)
        at com.centurylink.ctl_droid_wrap.models.Profile.<init>(Profile.java:34)
        at com.centurylink.ctl_droid_wrap.models.Profile$1.createFromParcel(Profile.java:41)
        at com.centurylink.ctl_droid_wrap.models.Profile$1.createFromParcel(Profile.java:38)
        at android.os.Parcel.readParcelable(Parcel.java:2990)
        at android.os.Parcel.readValue(Parcel.java:2883)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3261)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
        at android.os.BaseBundle.unparcel(BaseBundle.java:236)
        at android.os.Bundle.getParcelable(Bundle.java:951)
protected Profile(Parcel in) {
    profileName = in.readString();
    isPaused = in.readByte() != 0;
    numberOfDevices = in.readInt();
    isSelected = in.readByte() != 0;
}