2016-04-29 65 views
1

当我从一个片段开了一个活动发生此错误。新活动包含viewPager,我认为错误是由新的活动,因为当我一个代码块(viewPager.setAdapter(adapter))区段,该错误会消失,我可以看到新的活动引起的。所以我认为意图不会造成任何问题。android.os.TransactionTooLargeException“viewPager.setAdapter(适配器)”

这里是我的代码片段

getActivity().startActivity(new Intent(getActivity(),five_oder.class)); 

新的活动主代码

viewPager= (ViewPager) findViewById(R.id.oder_viewPafer); 
    tb= (PagerTabStrip) findViewById(R.id.order_tab); 
    TitleList = new ArrayList<String>(); 
    fragmentList = new ArrayList<Fragment>(); 
    TitleList.add("已完成订单"); 
    TitleList.add("未完成订单"); 
    fragmentList.add(new fragment_oder1()); 
    fragmentList.add(new fragment_oder2()); 
    MyFragmentAdapter adapter=new MyFragmentAdapter(getSupportFragmentManager(),fragmentList,TitleList); 
    viewPager.setAdapter(adapter); 

适配器代码

public class MyFragmentAdapter extends FragmentPagerAdapter { 
private List<Fragment> fragmentList= new ArrayList<Fragment>(); 
private List<String> stringList=new ArrayList<String>(); 
public MyFragmentAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> stringList) { 
    super(fm); 
    this.fragmentList=fragmentList; 
    this.stringList =stringList; 
    Log.i("CHONG","MyFragmentAdapter construct"); 
} 

@Override 
public Fragment getItem(int position) { 
    Log.i("CHONG"," getItem"); 
    return fragmentList.get(position); 
} 

@Override 
public int getCount() { 
    Log.i("CHONG"," getItem"); 
    return fragmentList.size(); 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    return stringList.get(position); 
} 

}

错误日志:

04-29 09:17:33.651 11798-11798/com.example.administrator.buyer E/JavaBinder: 

    !!! FAILED BINDER TRANSACTION !!! 

04-29 09:17:33.661 11798-11798/com.example.administrator.buyer      E/AndroidRuntime: Error reporting crash 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime: android.os.TransactionTooLargeException 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at android.os.BinderProxy.transactNative(Native Method) 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at android.os.BinderProxy.transact(Binder.java:496) 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4124) 

04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:89) 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at com.loc.ai.uncaughtException(DynamicExceptionHandler.java:86) 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
04-29 09:17:33.661 11798-11798/com.example.administrator.buyer E/AndroidRuntime:  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 

在此先感谢!

回答

0

我认为主要问题是其在该片段中过大的图像大小,因此该交易可查看片段无法完成,但是这可以通过单独加载图像固定的,你可以使用一个名为毕加索库使用本地/远程资源将图像加载到图像视图中 http://square.github.io/picasso/ 例如 Picasso.with(context).load(“file:///android_asset/DvpvklR.png”).into(imageView2);对于这个问题

参考: What to do on TransactionTooLargeException

+0

我已经上传我的代码,你的麻烦看!! – Yog

+0

@Yog我已经更新了我的答案 –

0

,当你不设置attachToRoot假在你的碎片类的onCreateView()方法,而充气布局此异常引起的。
如果它确实是默认情况下,它意味着'将子视图添加到父'现在'
如果它设置为false,那么它意味着'将子视图添加到父母不立即' 立即添加碎片向父母导致此异常。