相关疑难解决方法(0)

Proguard在Parcelable类中导致RuntimeException(解组未知类型代码)

如果我离开我的应用程序并在一段时间后打开它,我会收到此异常.我的主要活动包括一个包含三个不同片段的ViewPager.我也在Application类中做了一些我不认为与问题有关的东西.

这是例外:

RuntimeException(@Parcel:readValue:2065){无法启动活动ComponentInfo {com.emu/com.emu.ActivityMain}:java.lang.RuntimeException:Parcel android.os.Parcel@419526d0:在332处解组未知类型代码2131361816 }

我发现谷歌分析中的用户手机上发生了很多这种异常.所有这些都是相同的,除了@v之后的数字和@之后的十六进制数,在上面的异常中是2065和419526d0.

该异常并未指出任何代码行.我搜索了这个,似乎与错误写入包裹有关.虽然我的MainActivity中没有任何包裹.我不知道是什么原因引起的.

---编辑---------------------------------------------- --------------------------

我转载了例外.它发生在应用程序离开主页按钮,并在打开其他内存消耗应用程序后从内存中清除.再次启动它时会发生异常.直到现在我才认为从最近的任务或从DDMS关闭应用程序具有相同的效果,但显然它没有.

@EricWoodruf帮我发现包裹在进口图书馆的某个地方.我在PagerSlidingTabStrip中找到了我从网上下载的包裹.这是与包裹相关的代码,但我真的不知道这里有什么问题:

public class PagerSlidingTabStrip extends HorizontalScrollView
{
    @Override
    public void onRestoreInstanceState(Parcelable state)
    {
        SavedState savedState = (SavedState) state;
        super.onRestoreInstanceState(savedState.getSuperState());
        currentPosition = savedState.currentPosition;
        requestLayout();
    }

    @Override
    public Parcelable onSaveInstanceState()
    {
        Parcelable superState = super.onSaveInstanceState();
        SavedState savedState = new SavedState(superState);
        savedState.currentPosition = currentPosition;
        return savedState;
    }

    static class SavedState extends BaseSavedState
    {
        int currentPosition;

        public SavedState(Parcelable superState)
        {
            super(superState);
        }

        private SavedState(Parcel in)
        {
            super(in);
            currentPosition = in.readInt();
        }

        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

android

35
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1