2017-04-12 4 views
0

나는 Kotlin/rxJava의 응용 프로그램에서 작업 중이며 잠시 동안 오류로 고민하고 있습니다.앱을 종료 할 때 Kotlin/rxJava로 작성된 Android 앱에서 android.os.TransactionTooLargeException이 표시되는 이유는 무엇입니까? (onExit/onPause)?

응용 프로그램을 종료 할 때마다 "불행히도 AppName이 중지되었습니다."라는 팝업이 나타납니다. " java.lang.RuntimeException가 : android.os.TransactionTooLargeException :

내가 콘솔에서이 오류가 데이터 소포 크기 896,824 바이트**enter code here**

내가 API (23)와 함께 전화를 사용하거나 오류가 않습니다 낮은 발생하지 않지만 24와 25로 오류가 발생하고 응용 프로그램을 종료 한 후에 응용 프로그램이 "충돌"합니다. 그리고 그것은 나를 위해 개발자와 물론 사용자들에게 모두 짜증나는 듯합니다.

어떤 방식 으로든 앱을 종료하려고하면 오류가 발생합니다. 브라우저로 연결되는 링크를 클릭하면 내 앱의 연락처 담당자를 전화/연락처 목록에 추가/전송하거나 Gmail, Google+, 블루투스 등을 통해 공유 할 수 있습니다. 오류가 발생합니다. 무슨 일이 일어나는가는 이러한 모든 문제에서 앱을 종료 (홈 버튼 누르기)하거나 앱 (연락처, Gmail 등)에서 다른 애플리케이션을 열어야하고 앱이 다운되는 것입니다.

휴대 전화 연락처 목록에 내 앱의 사람을 추가하면 모든 정보가 전송되고 그 사람을 추가 할 수 있음을 언급 할 수 있습니다.

아무도이 happonds 이유를 가지고 있습니까? 필요하다면 자세한 내용을 묻고 저에게 물어보십시오. 지금 당분간이 버그가 있었고 매우 짜증났습니다.

전체 오류 : 활동의 savedInstanceState 번들이 너무 큰 경우

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)  
+0

[this] (http://stackoverflow.com/questions/39098590/android-os-transactiontoolargeexception-on-nougat)을 확인하셨습니까? – Piyush

+1

[TransactionTooLargeException에 수행 할 작업] 가능한 복제본 (http://stackoverflow.com/questions/11451393/what-to-do-on-transactiontoolargeexception) –

+0

@Piyush를 확인해 보겠습니다! –

답변

0

이가 발생합니다. onPause가 호출 될 때 어떤 객체가 유지되는지 확인해야합니다. 나는 비트 맵을 다루고있을 때 이와 똑같은 문제를 겪었다. 사실 안드로이드의 최신 버전에서는 문제가되는 것 같아요. 단지 그것을 그냥 억지하는 대신에 예외를 던지기 때문입니다.

+0

사실, 안드로이드의 이전 버전에서는 문제가 항상 있었지만 완전히 상세하지는 않았지만, 안드로이드 6.0 아래에서는 이미 사용중인 주소 나 재미있는 것과 같은 예외가 생길 것입니다 – wax911

관련 문제