stORM https://code.google.com/p/storm-gen/
I have the following in build.gradle
...
dependencies {
compile 'com.android.support:support-v13:+'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.googlecode.libphonenumber:libphonenumber:6.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'log4j:log4j:1.2.16'
compile 'org.slf4j:slf4j-log4j12:1.6.1'
}
android.applicationVariants.all { variant ->
def aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
variant.javaCompile.options.compilerArgs += [
"-processor", "com.turbomanage.storm.apt.MainProcessor",
'-AandroidManifestFile=' + variant.processResources.manifestFile,
'-s', aptOutput
]
variant.javaCompile.source = variant.javaCompile.source.filter { p ->
return !p.getPath().startsWith(aptOutput.getPath())
}
variant.javaCompile.doFirst {
aptOutput.mkdirs()
}
}
...
Dropped in libs:
storm-api-0.97.jar
storm-apt-0.97.jar
And upon building with gradle assembleRelease, I get:
:app:dexRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dexRelease'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/xyz/android/sdk/build-tools/19.0.1/dx --dex --output
/xyz/code/studio/Myapp/app/build/dex/release
/xyz/code/studio/Myapp/app/build/classes/release
/xyz/code/studio/Myapp/app/build/dependency-cache/release
/xyz/code/studio/Myapp/app/build/pre-dexed/release/libphonenumber-6.0-abc2e51ec6ac0cb8f28ec86ee41a37511055f6ea.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/library-2.4.0-31f82b62b24973486e6bf5acdc255648bd6a567a.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/log4j-1.2.16-51a933677ad733ef5cca3cb304434fddd96c08ca.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/slf4j-api-1.6.1-a040969be47961e95d820688122f6e64c1ac6025.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/slf4j-log4j12-1.6.1-8c58ce04b54255044a79c495ab437e1d1837ca00.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/storm-api-0.97-5a13884740c461b336ce512036f4706f19544b0b.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/storm-apt-0.97-59dde234977ec5d0b6dadf5e7497cf4d6ccb1649.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/support-v13-19.1.0-dd8f989f7c1c7adbefa06c594c0cfc6cb6c75387.jar
/xyz/code/studio/Myapp/app/build/pre-dexed/release/support-v4-19.1.0-155f54881a6e6cf88c81786a2d33043cfc538af3.jar
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/example/storm/BuildConfig;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
The command gradle -q dependencies, shows only
------------------------------------------------------------
Root project
------------------------------------------------------------
No configurations
Im not sure what the problem is, anyone?
It complains that both jars brought BuildConfig class (because of the way the two jars are build right now, which will change in the future).
You don't need the API jar, only the APT one (which contains the API classes, actually). This will remove your dex problem.
Another recommendation is to use android-apt, it'll make your life simpler!