2015-05-18 12 views
30

Happy (Verwendung -source 8 oder höher, um Lambda-Ausdrücke zu ermöglichen) unterstützt, dass Java Lambda expressions in Java-Version 8.Android Studio: Lambda-Ausdrücke sind nicht in -source 1.7

ich in Android Studio arbeite eingeführt zu wissen. Und ich bemerkte, dass DialogInterface.OnClickListener() unterstreichen zeigte und wurde grau gefärbt, wie unten:

enter image description here

Also, ich habe alter + enter auf dieser Linie und fand Option, um den Code mit Lambda-Ausdrücke zu ersetzen, wie unten:

enter image description here

, die in etwas unterhalb Folge:

enter image description here

Nachdem der Code ausgeführt wird es zeigte mir diesen Fehler:

Error:(160, 69) error: lambda expressions are not supported in -source 1.7 (use -source 8 or higher to enable lambda expressions)

Aber ich bin schon mit Java jdk1.8.0_31. Gibt es noch etwas, das ich installieren muss?

Kann mir jemand helfen, bitte ..

+2

Haben Sie gelesen: http://stackoverflow.com/questions/23318109/is-it-possible-to-use-java-8-for-android-development –

+0

Java 8 wird nicht unterstützt, aber Sie können retrolanbda für verwenden der gleiche Effekt https://github.com/evant/gradle-retrolambda – Eoin

Antwort

6

Ich glaube nicht, Android Entwicklung bereit ist, noch für Java 8. Android Studio unterstützt die Kompilierstufe Java 7, unabhängig davon, ob Sie Java 7 oder Java 8 installiert haben. Also, wenn Sie neue Funktionen von Java 8 verwenden möchten, denke ich, dass Sie Android Studio warten müssen, um compile level Java 8 zu unterstützen.

+0

ja könnte sein ... Sie sind hier richtig !. – CoDe

+0

Instant Run, der nicht unterstützt wird, ist der Hauptnachteil und was mich dazu brachte, ehrlich zu Java 7 zurückzukehren, PLUS alle wirklich coolen Sprachfunktionen in Java 8 (Streams zum Beispiel) werden nur mit API 24 und höher unterstützt ... was verrückt ist – Odaym

11

Sie können Java 8-Quellen nicht für Android kompilieren, da das Android SDK Java 8 noch nicht unterstützt.

Aber es gibt eine Möglichkeit, Lambdas in Ihrem Code zu verwenden - RetroLambda. Dies ist ein kleiner Hack, mit dem Sie einige der Funktionen von Java 8 in Ihrem Projekt verwenden können.

+0

Hast du es benutzt ... hast du irgendwelche Nebeneffekte über diese Bibliothek bekommen? – CoDe

+0

@Shubh Ich habe versucht, es in der Produktion vor ein paar Monaten zu verwenden, aber leider hatte ich eine Menge Probleme damit. Bamboo CI hat Java 8 nicht unterstützt bedeutet, dass Sie Ihr Projekt dort nicht kompilieren können. Auch für einige Versionen von Gradle Plugin-Projekt kompiliert, und Espresso-Tests nicht mit RetroLambdas gearbeitet. Wahrscheinlich haben diese Probleme bereits gelöst, aber ich habe nicht überprüft – Stepango

+0

So ist es nicht empfehlenswert, es für jetzt zumindest zu verwenden, Richtig! – CoDe

Verwandte Themen