Android Projesi (gradle) ana uygulama modülü vardır: app - android uygulama (eklenti uygulanır: 'com.android.application') ve java-modülü: ağAndroid Uygulama + Java Modülü (Java 1.8)
java modülü varsayılan olarak kaynak kodu uyumluluğu 1.8 sahiptir ve gerçekten çünkü lambda ifadelerinin olmasını istiyorum ağı: - (java 'eklentisi uygulanır).
Ancak Android uygulaması varsayılan olarak 1.7 ve uygulamayı oluşturamıyorum. Tabii benim uygulama yılında retrolambda kullanmak - android modülü, ancak proje nedeniyle derleme değil: Benim java modülü yaparsanız
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
Her şey iyi derler:
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
ancak bu durumda ben lambda ifadeleri kullanamaz ama ihtiyacım var.
ağ modül değil java ama android-modül ve kullanımı retrolambda olun (Ama .jar bunun böylece bu modülden .aar değil yapacağım:
yalnızca önümüzdeki çözümleri görmek olmak zorunda java)
Ben de lambda olmadan rxJava aptal kodla eşleşecek yüzünden kullanmak istiyorum benim java modülü gelecekte (.jar) (Ama yılında lambda ifadeleri kullanmayın)
Benim için en iyi çözüm, java modülümde retrolambda gibi bir şey olurdu. Ben böyle bir şey denedim ama retroambda bağımlılıkları (eklentiyi uygula: 'me.tatarka.retrolambda') derleme sırasında hatalardan etkilenmedi. Veya java 1.7'yi retrolambda gibi bir şeyle kullanabilirsin. Ancak derleme dosyası, derleme seçeneklerini ayarlamak için android {...} bölümüne sahip değildir.
Bu nasıl yapılır? Ben FunctionalIterables için yaptıklarına dayanarak
Lambdalar kullanan ancak retrolambdalar kullanarak android üzerinde kullanılacak java 7'de derleyen bir kütüphanem var. Gradle dosyasını ve kütüphaneyi buradan görebilirsiniz: https://github.com/smaspe/FunctionalIterables – njzk2