2013-12-09 2 views
51

Я новичок в разработке Android. Могу ли я использовать существующий Java-код, разработанный с использованием JDK 7 в Android?Поддерживает ли Android поддержку JDK 6 или 7

В функциях используются xerces dom и xslt и xpathapi. В настоящее время, когда я установил среду Android Eclipse ADT, эти функции не компилируются. Я также хотел бы знать, поддерживает ли устройство Android JRE 6 или 7?

+0

Это может помочь вам: HTTP: // StackOverflow.com/questions/8578441/can-the-android-sdk-work-with-jdk-1-7/9567402 # 9567402 – turbo

+0

Спасибо за ответ. Это все еще не отвечает на мой вопрос. – user3084351

+1

Хотя вопрос отмечен как дубликат, ответы на другой вопрос (который сам является дубликатом) http://stackoverflow.com/questions/14487682/diamond-operator-is-not-supported или он является «оригинальным» http://stackoverflow.com/questions/17637179/how-to-set-source-1-7-in-android-studio-and-gradle не только не помогают, но и ошибочны. Как указано в наиболее употребительном ответе ниже, оператор Diamonds и многие другие функции поддерживаются сейчас. –

ответ

4

Во-первых, существует различие между Java JDK и JRE. JRE - это среда выполнения Java, а JDK - набор для разработки Java. Это JDK, который вам нужен для разработки приложений Android вместе с существующим Android SDK.

Android SDK может использовать либо JDK 6, либо 7, однако он может ТОЛЬКО использовать API JDK 6.

+0

Спасибо за ответ. Окружение eclipse для Android не компилирует мой код, разработанный под обычным затмением с помощью jdk 6. Я включил библиотеку jdk 6 в путь сборки java. – user3084351

77

Первоначально Android средства разработки поддерживаются только JDK 6 функций. Но это было изменено, сначала Android Studio 0.3.2 в октябре 2013 года см: http://tools.android.com/recent/androidstudio032released

Поддержка функции языка как оператора алмаза, мульти-улов, примерка с-ресурсами, строки в коммутаторах и т.д. При создании нового проекта вы можете указать уровень исходного языка: enter image description here Обратите внимание, что вы можете использовать все эти языковые функции не только с Android KitKat, но и со старыми версиями Android! Существует одно исключение, что: попробуй с-ресурсов, которые потребуют minSdkVersion 19. Таким образом, студия отметит любое использование в коде примерочных с-ресурсов, если ваш minSdkVersion меньше, чем 19:

затем по ADT плагин 22,6 в марте 2014 года, см: http://developer.android.com/tools/sdk/eclipse-adt.html

Добавлена ​​поддержка для Java 7 функций языка, как мульти-уловом, попробуйте-с ресурсами, и оператор алмазов. Для этих функций требуется версия 19 или более новая версия Build Tools. Попытка ресурсов требует minSdkVersion 19; остальные функции нового языка требуют minSdkVersion 8 или выше. Чтобы использовать новые возможности языка после установки ADT 22.6.0, убедитесь, что вы запускаете Eclipse, на JDK 7 и изменить параметры проекта приложения использовать JDK 7.

Android не предназначен быть 100% совместимость с любым Версия Java SE API, а не 6, ни 8, ни любая. это стало причиной судебного дела Oracle, направленного против Google, обвиняя Google в фрагментации Java. Некоторые API-интерфейсы невозможно реализовать на android как Swing; Представьте себе окно с закрытой кнопкой на андроиде! Другие были отложены, но реализованы: например, класс Charset находится в Java SE 1.4, но реализован в API android API 9, AutoClosable в Java 7, реализованном в API 19 API, для реализации возможности языковой функции try-with-resources. Некоторые API-интерфейсы существуют, но для разных целей в качестве Консоли.

+4

Ничего себе, может быть, есть даже некоторые надежды на то, что он поддержит функции Java 8 в недалеком будущем. –

+3

@ SimonAndréForsberg Надеюсь. –

+0

Хотя новый ADT поддерживает новые языковые функции, он не говорит о том, поддерживаются ли новые API (например, Phaser), на что задается вопрос. – Sheepy

2

Да, JDK 7 теперь поддерживает андроид, начиная с инструментов сборки 19

Смежные вопросы