在某些Android设备上获取类未找到异常/ noclassdeffound错误

时间:2014-06-23 08:22:27

标签: java android samsung-mobile

我有一个实现Parcelable的类,它在某些设备上向我发送了一个NoClassDefFoundError类,但未找到类异常。目前我只在三星Android设备上遇到此错误。在Nexus 5,Nexus 4和Android模拟器上它可以正常工作,但出于某种原因不能在三星上运行。我只在三星远程测试实验室测试了这个,因为我没有三星设备进行调试。

此类课程也没什么特别之处。一个简单的类,只包含long,string和int从包中写入/读取。我检查了读写时的顺序是一样的。此外,该类不会从库中引用。

ERROR   06-23 09:14:13.578  892 1507        Parcel  Class not found when unmarshalling: path.class

ERROR   06-23 09:14:13.578  892 1507        Parcel  Caused by: java.lang.NoClassDefFoundError: path/class

ERROR   06-23 09:14:13.578  892 1507        Parcel  Caused by: java.lang.ClassNotFoundException: Didn't find class "path.class" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

该类的可分部分的代码。

public class Sprint implements Parcelable {

    private long mStartTime;
    private long mEndTime;
    private int mDaysInSprint;
    private String mSprintTitle;
    private int mId;

    private Sprint(Parcel source) {
        mStartTime = source.readLong();
        mEndTime = source.readLong();
        mDaysInSprint = source.readInt();
        mSprintTitle = source.readString();
        mId = source.readInt();
    }
    public static final Parcelable.Creator<Sprint> CREATOR = new Parcelable.Creator<Sprint>() {
        @Override
        public Sprint createFromParcel(Parcel source) {
            return new Sprint(source);
        }
        @Override
        public Sprint[] newArray(int size) {
            return new Sprint[size];
        }
    };

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeLong(mStartTime);
        dest.writeLong(mEndTime);
        dest.writeInt(mDaysInSprint);
        dest.writeString(mSprintTitle);
        dest.writeInt(mId);
    }

1 个答案:

答案 0 :(得分:0)

由于API版本兼容性,此错误可能会导致。请检查并使用最新版本的API。我不确定,但据我所知,这就是原因