MultiDEX project
At some point during the development you may see the following (or similar) exception:
trouble writing output: Too many field references: 68805; max is 65536.
You may try using --multi-dex option.
References by package:
3 android
2 android.accounts
31 android.app
...
or
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
This means that you’ve hit the 65k method limit which is imposed by DEX format. It usually happens after you add a few big (or many small) dependencies to your project. In order to make your project build again perform these steps:
- In
project.cljadd the following lines to:androidmap::multi-dex true :multi-dex-proguard-conf-path "build/proguard-multi-dex.cfg"
- The file
build/proguard-multi-dex.cfgshould already be in your project folder if you created the project recently. Otherwise you can copy it from here. - Remove “incremental” from
:dex-optsoption in:androidmap. Multidexing and incremental dexing are unfortunately incompatible. - Make sure that you use the latest Neko version, and your application class is
set to
neko.AppinAndroidManifest.template.xml.After you do these steps and rebuild your project, lein-droid will package classes into several DEX files. Multidexing build is somewhat slower but it is the only option to overcome the 65k limit.