3

We have multiple crashes on Exact Target SDK 3.5.0, Our users are reporting multiple crashes with the following stack trace:

java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:300)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=37; index=37
    at com.exacttarget.etpushsdk.data.Registration.deserializeAttributes(Registration.java:286)
    at com.exacttarget.etpushsdk.data.Registration.<init>(Registration.java:238)
    at com.exacttarget.etpushsdk.ETPush.<init>(ETPush.java:115)
    at com.exacttarget.etpushsdk.ETPush.<init>(ETPush.java:65)
    at com.exacttarget.etpushsdk.ETPush$1.doInBackground(ETPush.java:244)
    at com.exacttarget.etpushsdk.ETPush$1.doInBackground(ETPush.java:227)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ... 4 more
java.lang.ArrayIndexOutOfBoundsException: length=37; index=37
    at com.exacttarget.etpushsdk.data.Registration.deserializeAttributes(Registration.java:286)
    at com.exacttarget.etpushsdk.data.Registration.<init>(Registration.java:238)
    at com.exacttarget.etpushsdk.ETPush.<init>(ETPush.java:115)
    at com.exacttarget.etpushsdk.ETPush.<init>(ETPush.java:65)
    at com.exacttarget.etpushsdk.ETPush$1.doInBackground(ETPush.java:244)
    at com.exacttarget.etpushsdk.ETPush$1.doInBackground(ETPush.java:227)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)

Our setup is using Android Studio with a gradle build. Using a replace in the Manifest to replace our package name. Calling ReadyAimFire() in our extended Application. Setup works for some but seems to crash on other devices. We recently upgraded to 3.5.0 hoping this issue would be fixed, but it persisted from 3.1.0.

Any idea what could be wrong?

1

This error exhibits itself when the last attribute in a list of attributes is "" (an empty string). We have addressed this issue in the next release of the SDK which is schedule to be released very shortly.

  • Thanks for your answer @Bill Mote! Could you be a bit more specific? Is it attributes that I send in or attributes the SDK parses based on the package? IS there something we could do at our end to prevent this from happening? – Hatef Tadayon May 19 '15 at 11:48
  • The data you're parsing is simply the data you're sending mirrored back to you. So, somehow, you're sending in an empty string from your app -- probably as a result of unchecked user input? – Bill Mote May 19 '15 at 12:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.