Я использую JDK8x64 (только) с Android Studio 2.1 и нацелен на Android 4+.
Я думаю, что этот JDK8x64 используется для самой системы сборки, а не для экспорта в Android. (Так что это нормально, потому что Java 8 обратно совместима). (ОС: Win7x64)
Но согласно: https: //forums.xamarin .com / обсуждение / 48581 / use-of-jdk-8-with-xamarin-android
Верно ли, что при сборке с использованием JDK8 приложение не работает в более старых версиях ОС Android?
Есть опыт?
А как насчет JDK 8 с Xamarin Android?

0
user6169399 2 Май 2016 в 17:09

3 ответа

Лучший ответ

Мы использовали v8 с момента его выпуска, и у нас не было никаких проблем с приложениями Xamarin.Android (или библиотеками привязки Java):

>javac -version
javac 1.8.0_92

>java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Тем не менее, веб-сайт Xamarin утверждает:

Требования OS-X

Для использования Xamarin.Android с Xamarin Studio на Mac требуется следующее:

Java JDK 7 (1.7)

Если вы разрабатываете исключительно для версий Android старше Android 5.0 Lollipop (API 21), все равно можно использовать Java JDK 6 (1.6). Более поздние версии JDK также могут быть установлены для работы вместе с JDK 6 или JDK 7, если этого требует ваша машина.

Требования Windows:

Для Xamarin.Android также требуется установить 32-разрядную версию Java JDK 7 (1.7).

Более поздние версии JDK также могут быть установлены вместе с JDK 7 , если этого требует ваш компьютер.

0
SushiHangover 2 Май 2016 в 14:34

Чтобы ответить на ваш вопрос, да, это правда. Но Android Studio имеет тенденцию справляться с этим за вас, как заявляет @tyczj. Допустим, вы создаете приложение из JDK8 для своего Android 4+, но я хочу запустить это же приложение на своем Android 2.3, которое у меня все еще есть. Это может не сработать из-за проблем с совместимостью. Хотя Android Studio позаботится об этом, позволив вам указать, какие версии вы хотели бы поддерживать, не помешало бы взглянуть на различия между JDK8 и, скажем, JDK6.

0
Retro Gamer 2 Май 2016 в 14:28

Вы можете использовать JDK 8, и компилятор будет использовать только те функции Java, которые доступны (вы не сможете использовать последние функции, представленные в JDK 8, такие как лямбды, иначе вы получите сообщение об ошибке).

Однако, если вы нацеливаетесь на Android N, вы сможете использовать функции OpenJDK 8, некоторые из которых обратно совместимы с предыдущими версиями Android (например, лямбда-выражения и ссылки на методы имеют обратную совместимость). Чтобы узнать, что доступно, проверьте здесь: Поддерживаемые языковые функции Java 8 и API

2
AgileNinja 2 Май 2016 в 14:23