Issue with SDK with Android and noRes flag when wrapping the apk: Multidex not enabled
book
Article ID: 130259
calendar_today
Updated On:
Products
CA App Experience Analytics
Issue/Introduction
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.
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.
Environment
Discovered in AXA SaaS, could also affect an on-premise deployment
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