Issue with SDK with Android and noRes flag when wrapping the apk: Multidex not enabled

Document ID : KB000130259
Last Modified Date : 29/03/2019
Show Technical Document Details
Issue:
The following error may be seen when attempting to wrap the apk:
ERROR: Can not package with out creating additional dex. Wrap with out the -m option
ERROR: Exiting, SDK Integration failed!
ERROR: Wrapping Failure : Wrapping unsuccessful java.lang.Exception: Exiting, SDK Integration failed!

Whether or not you wrap with the -m option, the wrap will not complete.


 
Environment:
Discovered in AXA SaaS, could also affect an on-premise deployment
Cause:
Upon investigation, the methods in the source dex file before wrapping nearly reached the allowed limit for single dex file application - 64570 (98.53% used).
So the input AXA wrapper receives 1 dex file, but after wrapping and injecting its own classes it takes it over the limit.
In that case it requires 2 dex files, which will make the app multidex.

The SDK is designed such that if the wrapper on input receives 1 dex file, it should return 1 dex file after wrapping.
If the apk cannot be instrumented without overflowing the single dex limit, it will reject the wrapping.
Resolution:
The restriction has been removed in the wrapper.
The user still has to make their apk mutidex (in the build gradle file or by extending MultDexApplication class)

The wrapper will be made available in due course, please open a support request referring to DE408101 if you are faced with this issue