[Android] Application halting in between scene transition on certain Amazon devices.

Greetings Corona Community,

This is my third post in nearly two years. That is to say, I don’t post lightly.

I have a very strange problem, one in which I’m hoping one or more Corona developers have seen before and can say, “Ah, yes I remember that…”. Or, simply point me in a better direction than I’m currently on.

Brief History

We have been building and publishing this codebase for nearly two years now, having not seen any issue like this before. We publish to Android (google and amazon stores) and Apple.

The Problem

The application halts in between scenes from the call to storyboard.gotoScene(). This would seem to suggest that the issue is occurring in Corona’s internals. However, no errors are thrown. The last ‘debug steppable’ and ‘print loggable’ code block is the exitScene() call of the previous scene. No code blocks in the next scene, the one to be loaded, are ‘debug steppable’ or ‘print loggable’. This includes its createScene() and enterScene() calls.

The Catch

This only occurs on certain Amazon Kindle devices, notably, a Kindle Fire HDX 7". The complete list is unknown.  This same build is known to work on six of our QA Android devices and hundreds of others from our customer base. It also works on one other of our QA Amazon Kindle devices, an older Kindle Fire tablet.

Notes

The first and second scenes load without error or issue. The graphics and sounds associated with them also load without issue. It is only on the third scene load that this “halt without error” occurs.

Build Setup

Corone Enterprise Version: 2015.2601

Build Machine: Mac OS 10.10.1

Android Permissions

<uses-permission android:name=“android.permission.INTERNET”/>

<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE”/>

<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE”/>

<uses-permission android:name=“com.android.vending.BILLING”/>

<uses-permission android:name=“android.permission.READ_PHONE_STATE”/>

<uses-permission android:name=“com.google.android.c2dm.permission.RECEIVE”/>

Corona Plugins

plugins={

  [“plugin.amazon.iap”]={

    publisherId=“com.amazon”,

  },

  [“plugin.zip”]={

    publisherId=“com.coronalabs”,

    format=‘sharedLibrary’,

    staticLibs={‘plugin.zip’},

    frameworks={},

    frameworksOptional={}

  },

  [“facebook”]={

    publisherId=“com.coronalabs”

  },

  [“plugin.google.iap.v3”]={

    publisherId=“com.coronalabs”,

    supportedPlatforms={ android=true }

  },

},

Thank you,

  • Daniel

Hi Daniel.  This to me sounds like a situation that might occur if you have some onComplete listener, collision handler, Runtime event firing after the scene transitions away and when the objects in the scene go away, and the listener is still trying to access them, mischief occurs.   I would still expect there to be something useful in “adb logcat” from the device.

Now the (both) good and bad news.  We have deprecated storyboard in favor of it’s newer brother Composer (Storyboard 2.0).  But it sounds like you’re too vested in Storyboard.  You can go to our github repository  and download the code for Storyboard since we open sourced it.  You can drop the storyboard.lua file into your project folder, add some print statements and hopefully it will help you debug the issue.

Rob

Hi Daniel.  This to me sounds like a situation that might occur if you have some onComplete listener, collision handler, Runtime event firing after the scene transitions away and when the objects in the scene go away, and the listener is still trying to access them, mischief occurs.   I would still expect there to be something useful in “adb logcat” from the device.

Now the (both) good and bad news.  We have deprecated storyboard in favor of it’s newer brother Composer (Storyboard 2.0).  But it sounds like you’re too vested in Storyboard.  You can go to our github repository  and download the code for Storyboard since we open sourced it.  You can drop the storyboard.lua file into your project folder, add some print statements and hopefully it will help you debug the issue.

Rob