Я использую 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?
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 , если этого требует ваш компьютер.
Чтобы ответить на ваш вопрос, да, это правда. Но Android Studio имеет тенденцию справляться с этим за вас, как заявляет @tyczj. Допустим, вы создаете приложение из JDK8 для своего Android 4+, но я хочу запустить это же приложение на своем Android 2.3, которое у меня все еще есть. Это может не сработать из-за проблем с совместимостью. Хотя Android Studio позаботится об этом, позволив вам указать, какие версии вы хотели бы поддерживать, не помешало бы взглянуть на различия между JDK8 и, скажем, JDK6.
Вы можете использовать JDK 8, и компилятор будет использовать только те функции Java, которые доступны (вы не сможете использовать последние функции, представленные в JDK 8, такие как лямбды, иначе вы получите сообщение об ошибке).
Однако, если вы нацеливаетесь на Android N, вы сможете использовать функции OpenJDK 8, некоторые из которых обратно совместимы с предыдущими версиями Android (например, лямбда-выражения и ссылки на методы имеют обратную совместимость). Чтобы узнать, что доступно, проверьте здесь: Поддерживаемые языковые функции Java 8 и API
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.