We are having problems in building our multidex App. We keep receiving different java.lang.NoClassDefFoundError
erros during the application boot.
We noticed that they are very likely related to the multidex issues. As the required classes for booting the App must be present in the primary DEX file and they are not being included in the classes.dex
. We performed the steps described in https://developer.android.com/studio/build/multidex.html#keep
but the classes we specify in the multidex-config.txt
, or even in the multidex-config.pro
are not being placed in the primary dex file (classes.dex
).
Do you guys have experience using the multiDexKeepFile
or the multiDexKeepProguard? Does it really work? Is there any trick to make it work and place the files in the classes.dex
?
I have the same problem.And i still don't know why. But i found another solution,and it works. In your app module's build.gradle add dexOptions:
Try updating your gradle plugin. I've seen that in
2.2.0
the configuration is ignored entirely. When I updated to2.3.3
it started respecting the rules I set.Example:
And in my default config I have this set:
Also you may have to do a clean build before the changes are reflected.
You should check your
minSdkVersion
, if yourminSdkVersion
is >= 21,multiDexKeepProguard
is not supported. Because the build tools has do the dex split by default.More details:
https://developer.android.com/studio/build/multidex