gpt4 book ai didi

java - 解码错误时未找到类。可使用 byteArray、byte[] 进行解析

转载 作者:行者123 更新时间:2023-12-01 10:39:40 25 4
gpt4 key购买 nike

我在使用 Parcelable 类时遇到错误。我正在尝试在 Activity 之间以 ByteArray 形式传递图像,并最终传递到远程 Web 服务。

java.lang.ClassNotFoundException: ...解码时未找到类:

import java.util.UUID;

public class Property implements Parcelable {

@SerializedName("id")
@NonNull
private final String mId;
protected byte[] mImage;

public byte[] getmImage() { return mImage; }

public void setmImage(byte[] image){ mImage = image; }

@SerializedName("generalInformation")
private GeneralInformation mGeneralInformation;

@NonNull
public GeneralInformation getGeneralInformation() {
return mGeneralInformation;
}

public void setGeneralInformation(@NonNull final GeneralInformation generalInformation) {
mGeneralInformation = generalInformation;
}
@NonNull
public String getId() {
return mId;
}

@Override
public boolean equals(final Object o) {
return (o instanceof Property) && ((Property) o).mId.equals(mId);
}

@Override
public int hashCode() {
return mId.hashCode();
}

public static Property create() {
final Property model = new Property(UUID.randomUUID().toString());
model.setGeneralInformation(new GeneralInformation());
return model;
}

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

@Override
public void writeToParcel(@NonNull final Parcel dest, final int flags) {
if(mImage != null) {
dest.writeInt(mImage.length);
dest.writeByteArray(mImage);
}
dest.writeString(mId);
dest.writeParcelable(mGeneralInformation, 0);
}

private Property(@NonNull final String id) {
mId = id;
}

protected Property(final Parcel in) {
if(mImage != null)
{
mImage = new byte[in.readInt()];
in.createByteArray();
}
mId = in.readString();

mGeneralInformation = in.readParcelable(GeneralInformation.class.getClassLoader());
}

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

@NonNull
public Property[] newArray(final int size) {
return new Property[size];
}
};
}

现在我对这门课遇到的问题的了解非常有限。读取Parcel时mImage为null。 (即使当我将 byteArray 分配给 Parcel 时,我确信 byteArray 不为空。)我尝试在其声明中初始化 mImage,使其不为 null,但在解码错误时找不到该类...

我几乎可以肯定问题出在

protected Property(final Parcel in) {
if(mImage != null)
{
mImage = new byte[in.readInt()];
in.createByteArray();
}

但我不知道如何解决它。

我为这件事迷失了两天:/

最佳答案

请参阅以下带有 Parcel 对象的构造函数的代码。

protected Property(final Parcel in) {
mImage = new byte[in.readInt()];
in.readByteArray(mImage); // this will read the byte array from Parcel object(in) and store the value in mImage member variable.

mId = in.readString();

mGeneralInformation = in.readParcelable(GeneralInformation.class.getClassLoader());
}

关于java - 解码错误时未找到类。可使用 byteArray、byte[] 进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com