Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!
SOLVED

Crashes from Android SDK, no source code available

Avatar

Level 1

Hey,

 

I'm currently using Neolane on a large Android app (millions of users), and have noticed crashes caused by the Neolane library in our crash reporting system (Firebase Crashlytics). As I couldn't find the source code, I'm unable to find any further information about these crashes. 

 

It's worth noting these crashes are rare (30-40 instances across 300-400k uses in last couple of days), but I'd still like to resolve them. They seem to be related to receiving an error when registering a user, then the library being unable to handle the error (.registerDevice, then out of bounds in .initErrorMap).

 

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=11; index=11
       at android.util.ContainerHelpers.binarySearch(ContainerHelpers.java:28)
       at android.util.SparseArray.put(SparseArray.java:224)
       at com.neolane.android.v1.NeolaneExceptionDesc.initErrorMap(NeolaneException.java:171)
       at com.neolane.android.v1.NeolaneExceptionDesc.getErrorDesc(NeolaneException.java:155)
       at com.neolane.android.v1.NeolaneExceptionDesc.getErrorDesc(NeolaneException.java:160)
       at com.neolane.android.v1.NeolaneException.<init>(NeolaneException.java:88)
       at com.neolane.android.v1.Neolane.httpPostSendData(Neolane.java:224)
       at com.neolane.android.v1.Neolane.registerDevice(Neolane.java:301)
       at com.neolane.android.v1.NeolaneAsyncRunner$1.run(NeolaneAsyncRunner.java:45)

 

 

The library is included in a submodule's build.gradle as: 

 

implementation(name: 'neolane_sdk-1.0.26-release', ext: 'aar')

 

 

Thank you for any help / clues, let me know if any further information would be helpful.

Jake

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

 

This is the first I'm seeing user registration being done via sdk. Usually it's etl with the rest of recipient demographic data.

Are they connection errors? Is it possible to catch the exception from the library without it crashing?

 

Thanks,

-Jon

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

Hi,

 

This is the first I'm seeing user registration being done via sdk. Usually it's etl with the rest of recipient demographic data.

Are they connection errors? Is it possible to catch the exception from the library without it crashing?

 

Thanks,

-Jon

Avatar

Level 1

Hey Jon,

 

The registration is done using:

NeolaneAsyncRunner(Neolane.getInstance()).registerDevice(token, id, optedIn, context, NeolaneTrackerCallback())

which seems pretty standard? 

 

I'm afraid I have no more information than the stack trace provides. Since none of our code is present in the stacktrace, and I believe the registration is done on another thread, I don't believe we can catch it. 

 

The number of crashes spiked massively in the last day, so it may be an intermittent issue like connectivity. Regardless, the crash seems to be in Neolane trying to handle the error.

 

Thanks,

Jake

Avatar

Employee

Hi @JakeLee ,

 

Can you please share if you were able to find a cause of the issue and how was it solved in your case?

 

Thanks,

Kinshuk