progetto Android (Gradle) ha modulo principale dell'applicazione: app - applicazione Android (a plugin: 'com.android.application') e java-modulo: rete - (a plugin: 'java')Application Module Java Android + (Java 1.8)
modulo Java rete ha compatibilità del codice sorgente 1.8 di default e ho voglia di avere a causa di espressioni lambda.
Ma l'applicazione Android 1.7 per impostazione predefinita e non riesco a creare l'app. Naturalmente io uso retrolambda nel mio app - Modulo Android, ma il progetto non viene compilato correttamente a causa di:
Error:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
Tutto compila bene se faccio il mio modulo Java:
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
Ma in questo caso non posso usare espressioni lambda ma ne ho bisogno.
vedo solo prossimi soluzioni:
Fai rete modulo non java ma Android-modulo e l'uso retrolambda (ma ho intenzione di fare non .jar .aar da questo modulo in modo che deve essere java)
non usare le espressioni lambda nel mio modulo Java (.jar in futuro) (Ma voglio usarlo a causa del troppo coincidere con il codice stupido rxJava senza lambda)
La soluzione migliore per me sarebbe qualcosa come retrolambda nel mio modulo java. Ho provato a fare qualcosa di simile, ma le dipendenze retroambda (applicare plugin: 'me.tatarka.retrolambda') non è stata influenzata dagli errori durante la compilazione. O forse usare java 1.7 con qualcosa come retrolambda. Ma il file gradle non ha sezione android {...} per impostare compileOptions.
Come fare questo?
Ho una libreria che utilizza lambdas ma compila in java 7 per essere utilizzato su Android, usando retrolambdas. Puoi vedere il file gradle e la libreria qui: https://github.com/smaspe/FunctionalIterables – njzk2