2015-05-18 9 views
30

szczęśliwy wiedząc, że Java wprowadzony Lambda expressions w wersji java 8.android Studio: lambda wyrażenia nie są obsługiwane w -source 1.7 (wykorzystanie -source 8 lub wyższej, aby umożliwić wyrażeń lambda)

byłem w pracy w studio android. I zauważyłem, że DialogInterface.OnClickListener() pokazywał podkreślić i stał się szare jak poniżej:

enter image description here

Więc zrobiłem alter + enter na tej linii i znaleźć opcję, aby zastąpić kod z lambda wyrażeń, jak poniżej:

enter image description here

co spowodowało coś poniżej:

enter image description here

Po uruchomieniu kodu pokazał mi ten błąd:

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

Ale jestem już przy użyciu języka Java jdk1.8.0_31. Czy jest coś jeszcze, muszę zainstalować?

Czy ktoś może mi pomóc proszę ..

+2

Czytałeś: http://stackoverflow.com/questions/23318109/is-it-possible-to-use-java-8-for-android- development –

+0

Java 8 nie jest obsługiwana, ale możesz użyć retrolanbda dla ten sam efekt https://github.com/evant/gradle-retrolambda – Eoin

Odpowiedz

6

Nie sądzę Android rozwój jest jeszcze gotowy do Java 8. Android Studio obsługuje poziom kompilacji Java 7 niezależnie od tego, czy zainstalowano Java 7 czy Java 8. Tak więc, jeśli chcesz korzystać z nowych funkcji Java 8, myślę, że musisz czekać Android Studio, aby obsłużyć compile level Java 8.

+0

tak może być ... jesteś tutaj !. – CoDe

+0

Natychmiastowe uruchamianie nieobsługiwane jest główną wadą, co spowodowało, że powróciłem do Javy 7 szczerze, PLUS wszystkie naprawdę fajne funkcje językowe w Javie 8 (na przykład strumienie) są obsługiwane tylko z API 24 i wyżej .. co jest szalone – Odaym

11

Nie można skompilować źródeł Java 8 dla systemu Android, ponieważ pakiet Android SDK nie obsługuje jeszcze języka Java 8.

Ale jest jeden sposób użycia Lambdas w kodzie - RetroLambda. To jest mały hack, który pozwala wykorzystać niektóre funkcje Java 8 w twoim projekcie.

+0

Użyłeś tego. Czy masz jakiś efekt uboczny na temat tej biblioteki? – CoDe

+0

@Shubh Próbowałem użyć go w produkcji kilka miesięcy temu, ale niestety miałem z nim wiele problemów. Bamboo CI nie obsługiwał języka Java 8, co oznacza, że ​​nie możesz tam skompilować swojego projektu. Również niektóre wersje projektu wtyczki gradle nie kompilowały się, a testy espresso nie działały z retrolambodami. Prawdopodobnie problemy te zostały już rozwiązane, ale nie sprawdziłem. – Stepango

+0

Dlatego nie zaleca się używania go teraz przynajmniej, prawda! – CoDe

Powiązane problemy