Почему я получаю android.os.TransactionTooLargeException в своем приложении для Android, написанном в Kotlin / rxJava, когда я выхожу из приложения? (OnExit / OnPause)?

Я работаю над App в Kotlin / rxJava, и я некоторое время боюсь с ошибкой.

Каждый раз, когда я выхожу из приложения, я получаю всплывающее окно, где говорится: «К сожалению, AppName остановился».

Я получаю эту ошибку в консоли: java.lang.RuntimeException: android.os.TransactionTooLargeException: размер пакета данных 896824 байта **enter code here**

Когда я пользуюсь телефоном с API 23 или ниже, ошибка не возникает, но с 24 и 25 я получаю сообщение об ошибке, и приложение «сбой» ПОСЛЕ того, как я вышел из приложения. И это становится очень раздражающим, как для меня, так и для разработчиков, и, конечно же, для пользователей.

Ошибка возникает всякий раз, когда я пытаюсь выйти из приложения любым способом. Если я нажму на ссылку, которая приведет меня в браузер, добавьте / отправьте контактного лица из моего приложения в список контактов на телефоне или поделитесь через Gmail, Google+, Bluetooth и т. Д. Ошибка возникает. Итак, что происходит, так это то, что по всем этим проблемам я должен выйти из приложения (нажмите кнопку homebutton) или открыть другое приложение из приложения (контакты, gmail и т. Д.), И приложение выйдет из строя.

Я также могу отметить, что когда я добавляю человека из своего приложения в список контактов телефонов, вся информация отправляется, и я могу добавить человека.

Кто-нибудь знает, почему это происходит? Не стесняйтесь спрашивать меня о более подробной информации, если это необходимо, у меня была эта ошибка некоторое время, и это очень раздражает.

Полная ошибка:

 04-12 08:46:18.128 23287-23287/com.****.***** E/AndroidRuntime: FATAL EXCEPTION: main Process: com.******.*******, PID: 23287 java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 896824 bytes at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: android.os.TransactionTooLargeException: data parcel size 896824 bytes at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(Binder.java:615) at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3636) at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3773) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Это вызвано тем, что пакет ActivityInstanceState Activity слишком велик. Вам нужно проверить, какие объекты сохраняются при вызове onPause. У меня была такая же проблема, когда я имел дело с растровыми изображениями. Я считаю, что на самом деле это проблема только для более новых версий Android, так как теперь она вместо этого просто исключает исключение.