question

yugiduel avatar image
yugiduel asked

Ads randomly throwing android.os.TransactionTooLargeException

I keep getting crash reports in my app saying android.os.TransactionTooLargeException. I've had my app on the Amazon store since July 2014 and I didn't start having these crashes until a recent app update. I changed the refresh rate on the ads and I added another fallback network (Amazon is still my primary) but I don't understand why I keep getting this error. Also, I don't think there is any way I can catch and handle this exception since it takes place in a thread started by Amazon's API. I already asked for help over a week ago and all I got was a useless response telling me to look at the ad examples provided by Amazon. I know how to implement the ads and they've worked for over 8 months, so that's not the kind of advice I need. I use both Amazon banners and Amazon interstitials but it's hard to tell from the stack traces which one is the problem. In fact, almost all of the stack traces don't even mention any of my code so I can't trace it to something I'm doing wrong. I do have one stack trace that involves my coinFlip function but I think that's just a coincidence as it only loads a small image that surely is unable to overflow the transaction buffer. The app with the problem is YugiDuel LP Calculator for YuGiOh FREE. Can anyone tell me how to stop this transaction error or at least a way to catch it and prevent it from crashing my app? Thanks!
mobile ads
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

DougM@Amazon avatar image
DougM@Amazon answered
Hello Yugiduel, Could you please contact us via : https://developer.amazon.com/help/contactus.html so that way we can get a hold of the stack trace and help diagnose the exception object being thrown with the appropriate internal team? Thanks!
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

yugiduel avatar image
yugiduel answered
That's what I did already and I got the generic "Read the examples" answer. I just submitted another question via that link so hopefully we can get somewhere this time. The case number is 1370562671 if you need that to get a handle on it. If it was something from my code I would gladly fix it but it only seems to be thrown from Amazon's native code, and in a thread to make things worse. I forgot to mention that it's only happening on apps downloaded from Amazon app store onto Amazon devices. None of my downloads from Google Play have reported this type of error. Is there some way I can attach an exception handler to the loadAd() call? I think I could handle it from there if that's possible, I just haven't found a way to do that yet since its not my code. Message was edited by: yugiduel
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

yugiduel avatar image
yugiduel answered
Well after around 10 days I got the following response to my most recent Amazon support ticket: "The mobile ads team would like you to please provide a logcat with logging enabled and the crash occurring. If you are not able to acquire a logcat (i.e. only see the crash in crash logs), please send the entire crash report including the full stack trace and any other statistics provided." I thought Amazon could directly access my crash reports? Either way I am tired of getting the runaround from the "official" support. Waiting 10 days just to tell me they don't have the crash reports is unreasonable. My users are still suffering random crashes related to the Amazon ads, and it still has *ONLY* been reported from people who downloaded my ad-supported app from the Amazon app store onto Amazon devices. I haven't had any crash reports like this from my Google Play audience. I've provided one of my most recent stack traces below so maybe someone from Amazon can take a look and give me some actual feedback. The only pattern I've noticed is that a lot of times it throws the error when the app shows a pop-up dialog. The bold line below is the line of my code that is running when the crash occurs. The "customPlayer1" function shows a pop-up dialog that takes user input, but no pictures are involved or any large resource that could cause this android.os.TransactionTooLargeException. I've had the same dialogs showing for 8 months now with no problems and I haven't changed them at all, so my only thought is that somehow Amazon API may be caching ads or not releasing the resources from the previous banner each time it refreshes. Please someone from Amazon help me out with this problem. I don't want to get bad app reviews for something that looks to be out of my control as far as my actual code is concerned. [i] Screen at android.view.View$1.onClick(View.java:4046) at android.view.View.performClick(View.java:4768) at android.view.View$PerformClick.run(View.java:19073) at android.os.Handler.handleCallback(Handler.java:755) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5266) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:826) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at android.view.View$1.onClick(View.java:4041) ... 11 more Caused by: java.lang.RuntimeException at android.view.ViewRootImpl.setView(ViewRootImpl.java:559) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:76) at amazon.view.AmazonWindowManagerImpl.addView(AmazonWindowManagerImpl.java:83) at android.app.Dialog.show(Dialog.java:320) [b]at com.lifepoints0505.lifepointscalculator.Calculator.customPlayer1(Calculator.java:1556)[/b] ... 14 more Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Native Method) at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:731) at android.view.ViewRootImpl.setView(ViewRootImpl.java:548) ... 19 more [/i] If you want more stack traces let me know. I have a whole collection of them by now...
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

yugiduel avatar image
yugiduel answered
I've just submitted my 3rd support request via the Contact Us form. It'll probably take another 10 days just to get another vague answer that doesn't help me at all. The customer support here is [b]TERRIBLE[/b] now. It used to be great, what happened? Is Amazon just not willing to acknowledge that I have an error that comes from the Amazon Mobile Ads API and only occurs on Amazon devices? Ignoring me is not going to make me go away. I'm going to keep bringing it up until I get some kind of useful answer. And just so you know, I [b]CANNOT[/b] replicate this error at all (I don't have an Amazon device that will crash it). FYI here's another stack trace that doesn't mention any of my code at all: Screen at android.view.ViewRootImpl.setView(ViewRootImpl.java:559) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:76) at amazon.view.AmazonWindowManagerImpl.addView(AmazonWindowManagerImpl.java:83) at android.widget.PopupWindow.invokePopup(PopupWindow.java:1063) at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:969) at android.widget.ListPopupWindow.show(ListPopupWindow.java:654) at com.android.internal.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:167) at com.android.internal.view.menu.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:750) at android.os.Handler.handleCallback(Handler.java:755) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5266) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:826) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642) at dalvik.system.NativeStart.main(Native Method) Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Native Method) at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:731) at android.view.ViewRootImpl.setView(ViewRootImpl.java:548) ... 17 more
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Ross@Amazon avatar image
Ross@Amazon answered
The mobile ads team has been made aware of the issue and a solution is currently in progress.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

yugiduel avatar image
yugiduel answered
Thanks for the reply. Just for clarification, is the issue with the API in general or is the issue something specific to my app?
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Ross@Amazon avatar image
Ross@Amazon answered
Several developers have contacted us regarding problems with version 5.5.102 of mobile ads so it is most likely an API issue.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.