Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android.os.BadParcelableException:ClassNotFoundException解组时:_Android_Classnotfoundexception - Fatal编程技术网

android.os.BadParcelableException:ClassNotFoundException解组时:

android.os.BadParcelableException:ClassNotFoundException解组时:,android,classnotfoundexception,Android,Classnotfoundexception,我不知道为什么会发生这种情况,我无法复制它。 它在控制台里 我真的很抱歉,只是把代码和日志猫,但我甚至不能阅读日志猫,我没有遇到这样的问题之前,我甚至不知道从哪里开始。 任何帮助都将不胜感激 这是原木猫 android.os.BadParcelableException: ClassNotFoundException when unmarshalling: bitsie.playmee.musicplayer.free.classes.SongDetails at android.os.

我不知道为什么会发生这种情况,我无法复制它。 它在控制台里

我真的很抱歉,只是把代码和日志猫,但我甚至不能阅读日志猫,我没有遇到这样的问题之前,我甚至不知道从哪里开始。 任何帮助都将不胜感激

这是原木猫

android.os.BadParcelableException: ClassNotFoundException when unmarshalling: bitsie.playmee.musicplayer.free.classes.SongDetails
    at android.os.Parcel.readParcelableCreator(Parcel.java:2147)
    at android.os.Parcel.readParcelable(Parcel.java:2097)
    at android.os.Parcel.readValue(Parcel.java:2013)
    at android.os.Parcel.readListInternal(Parcel.java:2343)
    at android.os.Parcel.readArrayList(Parcel.java:1703)
    at android.os.Parcel.readValue(Parcel.java:2034)
    at android.os.Parcel.readArrayMapInternal(Parcel.java:2314)
    at android.os.Bundle.unparcel(Bundle.java:249)
    at android.os.Bundle.getSparseParcelableArray(Bundle.java:1273)
    at android.support.v4.app.FragmentManagerImpl.throwException(Unknown Source)
                                                  beginTransaction
                                                  putFragment
                                                  getFragment
                                                  saveFragmentInstanceState
                                                  dump
                                                  makeOpenCloseAnimation
                                                  makeFadeAnimation
                                                  loadAnimation
                                                  moveToState
                                                  moveToState
                                                  moveToState
                                                  addFragment
                                                  removeFragment
                                                  findFragmentById
                                                  findFragmentByTag
                                                  enqueueAction
                                                  allocBackStackIndex
                                                  setBackStackIndex
                                                  popBackStackState
                                                  restoreAllState
                                                  attachActivity
                                                  dispatchConfigurationChanged
                                                  dispatchCreateOptionsMenu
                                                  dispatchPrepareOptionsMenu
                                                  dispatchOptionsItemSelected
    at android.support.v4.app.FragmentManagerImpl.throwException(Unknown Source)
                                                  beginTransaction
                                                  putFragment
                                                  getFragment
                                                  saveFragmentInstanceState
                                                  dump
                                                  makeOpenCloseAnimation
                                                  makeFadeAnimation
                                                  loadAnimation
                                                  moveToState
                                                  moveToState
                                                  moveToState
                                                  addFragment
                                                  removeFragment
                                                  findFragmentById
                                                  findFragmentByTag
                                                  enqueueAction
                                                  allocBackStackIndex
                                                  setBackStackIndex
                                                  popBackStackState
                                                  restoreAllState
                                                  attachActivity
                                                  dispatchConfigurationChanged
                                                  dispatchCreateOptionsMenu
                                                  dispatchPrepareOptionsMenu
                                                  dispatchOptionsItemSelected
    at android.support.v4.app.BackStackRecord.run(Unknown Source)
    at android.support.v4.app.FragmentManagerImpl.makeInactive(Unknown Source)
                                                  attachFragment
                                                  execPendingActions
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(Unknown Source)
                                                  performPendingDeferredStart
                                                  hideFragment
                                                  freeBackStackIndex
                                                  addBackStackState
                                                  dispatchContextItemSelected
                                                  dispatchOptionsMenuClosed
                                                  transitToStyleIndex
    at android.support.v4.app.FragmentStatePagerAdapter.setPrimaryItem(Unknown Source)
                                                        finishUpdate
    at android.support.v4.view.ViewPager.initViewPager(Unknown Source)
                                         setCurrentItem
                                         setCurrentItemInternal
                                         setCurrentItemInternal
                                         scrollToItem
                                         setPageTransformer
                                         setInternalPageChangeListener
                                         distanceInfluenceForSnapDuration
                                         smoothScrollTo
                                         addNewItem
                                         populate
                                         calculatePageOffsets
                                         infoForChild
                                         recomputeScrollPosition
                                         onPageScrolled
                                         completeScroll
                                         isGutterDrag
                                         determineTargetPage
                                         onSecondaryPointerUp
                                         canScroll
                                         executeKeyEvent
                                         getChildRectInPagerCoordinates
                                         access$000
                                         access$200
    at android.support.v4.view.ViewPager.populate(Unknown Source)
                                         requestParentDisallowInterceptTouchEvent
                                         arrowScroll
    at android.support.v4.view.ViewPager$3.run(Unknown Source)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
    at android.view.Choreographer.doCallbacks(Choreographer.java:574)
    at android.view.Choreographer.doFrame(Choreographer.java:543)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5111)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
    at dalvik.system.NativeStart.main(Native Method)
这是这个类的代码

public class SongDetails implements Parcelable
{


    public SongDetails( int _ID, String click_no, String Album, String Artist, String Path, String Time, String song, String sortBy, int albumID,
            String audioID )
    {
        this._ID = _ID;
        this.click_no = click_no;
        this.Album = Album;
        this.Artist = Artist;
        this.Path = Path;
        this.Time = Time;
        this.song = song;
        this.sortBy = sortBy;
        this.albumID = albumID;
        this.audioID = audioID;
    }


    public SongDetails( Parcel in )
    {
        this._ID = in.readInt( );
        this.Path = in.readString();
        this.song = in.readString( );
        this.Album = in.readString( );
        this.Artist = in.readString( );
        this.Time = in.readString( );
        this.sortBy = in.readString( );
        this.click_no = in.readString( );
        this.albumID = Integer.parseInt( in.readString( ) );
        this.audioID = in.readString( );
    }


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

    @Override
    public void writeToParcel( Parcel dest, int flags )
    {
        dest.writeInt( _ID );
        dest.writeString( Path );
        dest.writeString( song );
        dest.writeString( Album );
        dest.writeString( Artist );
        dest.writeString( Time );
        dest.writeString( sortBy );
        dest.writeString( click_no );
        dest.writeString( String.valueOf( albumID ) );
        dest.writeString( audioID );
    }

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

        public SongDetails [ ] newArray( int size )
        {
            return new SongDetails [ size ];
        }
    };
}
public类SongDetails实现可包裹
{
公共歌曲详细信息(int _ID、字符串点击号、字符串相册、字符串艺术家、字符串路径、字符串时间、字符串歌曲、字符串排序、int相册ID、,
字符串(音频)
{
这个。_ID=_ID;
this.click\u no=单击\u no;
this.Album=Album;
这个。艺术家=艺术家;
this.Path=Path;
这个。时间=时间;
这首歌=这首歌;
this.sortBy=sortBy;
this.albumID=albumID;
this.audioID=audioID;
}
公共信息详细信息(包裹中)
{
这个。_ID=in.readInt();
this.Path=in.readString();
this.song=in.readString();
this.Album=in.readString();
this.Artist=in.readString();
this.Time=in.readString();
this.sortBy=in.readString();
this.click_no=in.readString();
this.albumID=Integer.parseInt(in.readString());
this.audioID=in.readString();
}
@凌驾
公共int描述内容()
{
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志)
{
目标写入项(_ID);
目标写入限制(路径);
目的地写作(歌曲);
目的地笔录(相册);
目的地作家(艺术家);
目的地书面限制(时间);
目的写入限制(sortBy);
目的写入(单击“否”);
dest.writeString(String.valueOf(albumID));
目的写入(音频ID);
}
公共静态最终包裹。CreatorCreator=新包裹。Creator(){
公共歌曲详细信息createFromParcel(包裹中)
{
返回新歌曲详细信息(在中);
}
public SongDetails[]新数组(整数大小)
{
返回新歌曲详细信息[大小];
}
};
}
正在读取包裹数据的活动代码

Bundle bundle = getIntent( ).getExtras( );
    if ( bundle != null )
    {
        if ( GlobalSongList.GetInstance( ).getCheck( ) == 0 )
        {
            try
            {
                GlobalSongList.GetInstance( ).setPosition( bundle.getInt( "Data2", 0 ) );
                if(bundle.getParcelableArrayList( "Data1" )!=null)
                {
                    ArrayList < SongDetails > list = 

bundle.getParcelableArrayList( "Data1" );
                        GlobalSongList.GetInstance( ).SetNowPlayingList( list );

                    }
                    CMDNAME = bundle.getString( IConstant.CMDNAME );
                }
                catch ( Exception e )
                {
                    // e.printStackTrace( );
                }
            }
            comefrom = bundle.getString( "comefrom" );
            isFromRecentAdded = bundle.getBoolean( "fromRecentAdded", false );
            click_no = bundle.getString( "click_no_playlist" );
Bundle Bundle=getIntent().getExtras();
if(bundle!=null)
{
if(GlobalSongList.GetInstance().getCheck()==0)
{
尝试
{
GlobalSongList.GetInstance().setPosition(bundle.getInt(“Data2”,0));
if(bundle.getParcelableArrayList(“Data1”)!=null)
{
ArrayListlist=
bundle.getParcelableArrayList(“数据1”);
GlobalSongList.GetInstance().SetNowPlayingList(列表);
}
CMDNAME=bundle.getString(IConstant.CMDNAME);
}
捕获(例外e)
{
//e.printStackTrace();
}
}
comefrom=bundle.getString(“comefrom”);
isFromRecentAdded=bundle.getBoolean(“fromRecentAdded”,false);
单击\u no=bundle.getString(“单击\u no\u播放列表”);

我认为问题在于,在解组
歌曲详细信息
列表时,您没有设置类加载器

您可以执行以下操作来读取
“Data1”

if(bundle.getParcelableArrayList(“Data1”)!=null){
bundle.setClassLoader(SongDetails.class.getClassLoader());
ArrayListlist=bundle.getParcelableArrayList(“数据1”);
//代码的其余部分
}

你能把代码贴在你读的地方吗?@antonio完成了…请看一看我甚至不知道这是否解决了问题。有没有可能会增加问题?我想它应该可以解决你的问题,而不会引起更多的问题。你发现新的错误了吗?嗯,这是我的用户报告的错误,我不能n在我的手机上报告..:(Uff…那就很难调试了…如果我在你那里,我会在我的手机上尝试这个解决方案,看看它在部署到生产环境之前是否会破坏一些东西。你也可以在设置新的
类加载器之前保存当前的
类加载器
,在取消对
数组列表的编组之后,将旧的
类加载器设置为
>再次捆绑
,以最大限度地减少出现新错误的机会
if(bundle.getParcelableArrayList( "Data1" )!=null) {
    bundle.setClassLoader (SongDetails.class.getClassLoader());
    ArrayList < SongDetails > list = bundle.getParcelableArrayList( "Data1" );

    // Rest of your code
}