2017-04-12 3 views
0

Je travaille sur une application dans Kotlin/rxJava et j'ai été aux prises avec une erreur pendant un moment maintenant.Pourquoi est-ce que je reçois une android.os.TransactionTooLargeException dans mon application Android écrite en Kotlin/rxJava quand je quitte l'application? (onExit/onPause)?

Chaque fois que je quitte l'application, je reçois un pop-up où il est dit: « Malheureusement, AppName a cessé. ».

Je reçois cette erreur de la console: java.lang.RuntimeException: android.os.TransactionTooLargeException: parcelle données taille 896824 octets**enter code here**

Lorsque j'utilise un téléphone avec l'API 23 ou moins l'erreur ne pas se produire, mais avec 24 et 25 je reçois l'erreur et l'application "se bloque" après avoir quitté l'application. Et ça devient vraiment énervant, à la fois pour moi en tant que développeur et bien sûr pour les utilisateurs.

L'erreur se produit chaque fois que je tente de sortir de l'application de quelque façon. Si je clique sur un lien qui me mène au navigateur, ajouter/envoyer une personne de contact de mon application à la liste de contacts sur le téléphone ou partager via Gmail, Google+, bluetooth, etc. l'erreur se produit. Donc ce qui se passe est que sur toutes ces questions, je dois quitter l'application (appuyez sur le bouton d'accueil) ou ouvrir une autre application de l'application (contacts, gmail, etc.) et l'application se bloque.

Je peux aussi mentionner que lorsque j'ajouter une personne de mon application à la liste des contacts des téléphones toutes les informations est envoyé, et je suis en mesure d'ajouter la personne.

Quelqu'un at-il la moindre idée de pourquoi cela se produit? N'hésitez pas à me demander plus de détails si cela est nécessaire, j'ai eu ce bug depuis un moment maintenant et c'est très énervant.

erreur entière:

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

Avez-vous vérifié [ce] (http://stackoverflow.com/questions/39098590/android-os-transactiontoolargeexception-on-nougat)? – Piyush

+1

double possible de [Que faire sur TransactionTooLargeException] (http://stackoverflow.com/questions/11451393/what-to-do-on-transactiontoolargeexception) –

+0

Je vais vérifier @Piyush! –

Répondre

0

Ceci est dû paquet savedInstanceState d'une activité est trop importante. Vous devez vérifier quels objets sont conservés lorsque onPause est appelé. J'ai eu exactement le même problème quand j'ai eu affaire à Bitmaps. Je crois que ce n'est en fait un problème sur les nouvelles versions d'Android, car il jette une exception maintenant au lieu de simplement le supprimer.

+0

Vrai, bien que dans les versions précédentes d'Android le problème était toujours là mais n'a jamais été entièrement détaillé, ci-dessous Android 6.0 vous obtiendrez une exception comme l'adresse déjà utilisée ou quelque chose de drôle – wax911