0
  • 最佳答案

    你放完整的代码吧,堆栈报的是携带的数据包太大了

    1255088796991492096  评论     打赏       冒着泡泡的汽水儿
    • 冒着泡泡的汽水儿  回复 @冒着泡泡的汽水儿
      重点圈起来这个IDCardDirection
      冒着泡泡的汽水儿 2022-01-27 17:09   回复 1255088796991492096
    • RUOQ  回复 @冒着泡泡的汽水儿
      IDCardDirection 只是一个整形的数据,我认为影响不大
      RUOQ 2022-01-27 17:21   回复 1302969105866940416
    • RUOQ  回复 @冒着泡泡的汽水儿
      我上传了代码,还有什么要提供的吗
      RUOQ 2022-01-27 17:26   回复 1302969105866940416
    • 冒着泡泡的汽水儿  回复 @RUOQ
      如果只是整形数据肯定没问题,问题是你进入Activity的时候你携带了什么数据过去,如果没有绝对不会报数据包太大的原因,你复查一下你进入Activity的一些逻辑,如果没有,考虑下你Fragment跟Activity里是不是同样也有很大的数据存在着?
      冒着泡泡的汽水儿 2022-01-28 09:28   回复 1255088796991492096
    • RUOQ  回复 @冒着泡泡的汽水儿
      我跟踪了系统的源码,找到问题了,是因为我从viewpager2里面的Fragment 启动了一个Activity用来拍摄,viewpager2里面会自动保存里面的fragment的状态,之前我限制了viewpager2的缓存的页面数量,parcel里面传递的数据减少了一半,但是还是超过了binder 1M 大小的限制,所以后面干脆不用viewpager2了,自己控制页面的切换,问题就解决了,感谢你
      RUOQ 2022-01-29 12:53   回复 1302969105866940416
  • targetSdkVersion 是多少

    TransactionTooLargeException 
    在23 会抛异常
    在24 就会crash
    
    可以打个日志看看,Binder负载有多少,
    如果是 图片太大压缩一下
    如果是历史数据太多,处理一下历史数据
    
    或者debug onSaveInstanceState里的内容看看,应该也能找到问题
    
    1486565231634276353  评论     打赏       独一无二的花名二世
    • RUOQ  回复 @独一无二的花名二世
      是这样的,我的targetSdkVersion = 28,我在CameraActivity里面打断电,Bundle是空的,BaseArchFragment里面的结果也是空的
      RUOQ 2022-01-27 17:43   回复 1302969105866940416
  • //从这个Fragment 启动拍照的Activity
    class StepSecondFragment : BaseArchFragment(){
        private var _binding: FragmentStepSecondBinding?= null
        private val binding get() = _binding!!
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
            _binding = FragmentStepSecondBinding.inflate(inflater,container,false)
            with(binding){
                sfzLeft.setOnClickListener{
                    //进入拍照的activity
                    IDCardCameraSelect.create(this@StepSecondFragment).openCamera(IDCardCameraSelect.TYPE_IDCARD_FRONT)
                }
            }
            return _binding?.root
    
        }
    }
    
    



    下面是openCamera的代码

    public void openCamera(int IDCardDirection) {
        Activity activity = this.mActivity.get();
        Fragment fragment = this.mFragment.get();
        Intent intent = new Intent(activity, CameraActivity.class);
        intent.putExtra(TAKE_TYPE, IDCardDirection);
        if (fragment != null) {
            fragment.startActivityForResult(intent, IDCardDirection);
        } else {
            activity.startActivityForResult(intent, IDCardDirection);
        }
    }
    
    
    1302969105866940416  评论     打赏       RUOQ
    • 独一无二的花名二世  回复 @RUOQ
      BaseArchFragment 里面的具体操作,需要你自己debug
      独一无二的花名二世 2022-01-27 17:27   回复 1486565231634276353
  • 【点击身份证正面启动另一个CameraActivity,进入页面后,5s 左右崩溃】,进入后什么都没做?还是这图片做了什么操作呢?

    1139423796017500160  评论     打赏       断点-含光君
    • 断点-含光君  回复 @断点-含光君
      我猜测可能是你回传的图片吧,但是你上面也没有说明你拍过照片,你要提供更多的信息
      断点-含光君 2022-01-27 15:54   回复 1139423796017500160
    • RUOQ  回复 @断点-含光君
      没有进行任何操作,只是在那里放着也是崩掉
      RUOQ 2022-01-27 16:48   回复 1302969105866940416
    • 断点-含光君  回复 @RUOQ
      有点诡异,什么设备下产生了,还有,这个app能给我们测试吗,我以为你拍照完了把图片丢回来,导致bundle太大,通常不能超过1mb的
      断点-含光君 2022-01-27 17:47   回复 1139423796017500160
相关问题
_empty · Android
2019-10-20 23:51 628 2
application · Android
2019-11-05 00:26 779 2
三流废物 · android / 小白
2019-11-22 00:35 1067 5
豪豪好嘛 · Android / GPS
2019-11-26 20:15 884 5
Jian · android
2019-11-28 01:51 615 2
2019-12-01 01:01 705 2
小陈学编程 · Android
2019-12-01 19:08 633 2
fkinggod · Android
2019-12-08 09:19 661 5
fkinggod · Android
2019-12-08 20:47 611 2
kissmyass · Android
2019-12-09 07:08 537 2
独一无二的名zi · Android
2019-12-30 06:48 415 2