【已解决】 data parcel size 4242052 bytes
1.一个Activity里面使
用了viewpager,包含了3个Fragment,并且限制了缓存的页面为 1 个,
点击身份证正面启动另一个CameraActivity,进入页面后,5s 左右崩溃
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); //这种并没有传递bundle,为什么还是会被bundle过大了
} else {
activity.startActivityForResult(intent, IDCardDirection);
}
}
android.os.TransactionTooLargeException: data parcel size 3991060 bytes
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:161)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8633)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Caused by: android.os.TransactionTooLargeException: data parcel size 3991060 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:605)
at android.app.IActivityTaskManager$Stub$Proxy.activityStopped(IActivityTaskManager.java:4988)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:145)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8633)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
你放完整的代码吧,堆栈报的是携带的数据包太大了
targetSdkVersion 是多少
//从这个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); } }【点击身份证正面启动另一个CameraActivity,进入页面后,5s 左右崩溃】,进入后什么都没做?还是这图片做了什么操作呢?