Яка версія JDK (рівень мови) потрібна для Android Studio?


76

Я новачок у світі андроїдів і з .NET-фоном. Я намагаюся встановити Android Studio, але на Android.com у мене виникає невідповідність версії JDK, необхідній для розробки програм для Android.

На веб-сторінці SDK зазначено, що потрібен JDK 6 (відповідно до розділу системних вимог). Джим Вілсон також наполягає на своєму курсі Pluralsight (який є абсолютно новим, починаючи з травня минулого року), що використання версії 7 з Android SDK створить сильний головний біль і дає зрозуміти лише використання JDK 6.

Хоча на сторінці студії Android (під час встановлення кроку 2) вони пояснюють, як встановити змінну середовища із зазначенням правильного розташування JDK. Тут вони використовують шлях JDK 7

Виберіть Start menu > Computer > System Properties > Advanced System Properties. Потім відкрийте Advanced tab > Environment Variablesта додайте нову системну змінну, JAVA_HOMEяка вказує на вашу папку JDK, наприклад C:\Program Files\Java\jdk1.7.0_21.

Я майже впевнений, що і набір ADT & Eclipse, і набір Android Studio використовують один і той же SDK, але зараз я збентежений, яку версію JDK мені потрібно встановити. Моя єдина мета - якомога більше уникати проблем, роблячи перші кроки у розробці Android.

Застереження: Я не маю жодного відношення до Pluralsight. Я звичайний користувач, який відвідує курси.

Відповіді:


76

Роз’яснення відповідей - Android Studio підтримує JDK8

Далі наведено відповідь на запитання "Яку версію Java підтримує Android?" що відрізняється від "Яку версію Java можна використовувати для запуску Android Studio?" що я вірю, що насправді просили. Для тих, хто хоче відповісти на друге запитання, вам може стати в нагоді використання Android Studio з Java 1.7 .

Також: Див. Http://developer.android.com/sdk/index.html#latest щодо системних вимог Android Studio. JDK8 насправді є вимогою для ПК та Linux (станом на 14.05.16).


Оновлення Java 8 (19.03.14)

Тому що я вважаю, що це питання почне з’являтися найближчим часом із випуском учора: станом на зараз, немає встановленої дати, коли Android буде підтримувати Java 8.

Ось дискусія на / androiddev - http://www.reddit.com/r/androiddev/comments/22mh0r/does_android_have_any_plans_for_java_8/

Якщо вам дійсно потрібна підтримка лямбда-сигналів, ви можете замовити Retrolambda - https://github.com/evant/gradle-retrolambda . Я ніколи цим не користувався, але це здається досить перспективним.

Ще одне оновлення: Android додав підтримку Java 7

Android тепер підтримує Java 7 (за винятком функції спробувати з використанням ресурсу). Детальніше про функції Java 7 ви можете прочитати тут: https://stackoverflow.com/a/13550632/413254 . Якщо ви використовуєте gradle, ви можете додати наступне у свій build.gradle:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

Старіша відповідь

Я без проблем використовую Java 7 з Android Studio (OS X - 10.8.4). Вам потрібно переконатися, що ви знизили рівень мови проекту до 6,0. Дивіться знімок екрана нижче.

введіть тут опис зображення

Те, що сказано нижче про техота, також має сенс. Якщо вони пропонують JDK 6, має сенс просто піти з JDK 6. У будь-якому випадку це буде добре.

введіть тут опис зображення


Оновлення: Дивіться цю публікацію SO - https://stackoverflow.com/a/9567402/413254


2
Чи все ще це стосується Java 8? Коли це буде підтримано?
doplumi

1
@domenicop справді. Можливо, ще не на пару років: P.
loeschg

2
Android, що використовує власне середовище виконання, є причиною того, чому Android завжди відстає на кілька років щодо версій Java.
tiktak

1
Я бачу, що це прийнята відповідь (з 57 голосами проти), але ІМО це взагалі не відповідає на питання. Питання в тому, яка версія Java потрібна для запуску AS, яка є абсолютно незалежною від версії Java, що підтримується для додатків Android.
Том

@Tom, я згоден! Я оновив відповідь вище, щоб відобразити це хоча б якоюсь мірою.
loeschg

3

Зазвичай я б погодився з тим, що сказано в документації, але якби викладач прямо сказав дотримуватися JDK 6, я б використовував JDK 6, оскільки ви хотіли б, щоб ваше середовище розробки було якомога ближче до викладачів. Було б відмовно, якби ви зіткнулися з проблемою і задумалися про те, що, можливо, це пов’язано з тим, що ви перебуваєте на JDK 7. До речі, нещодавно я не торкався Android, але особисто я ніколи не стикався з проблемами, коли був на JDK 7, але зауважте, я лише випадково кодую програми для Android.


2

Намагайтеся не використовувати версії JDK, вищі за підтримувані. Насправді кілька місяців тому я зіткнувся з дуже неоднозначною проблемою .

У мене була власна бібліотека jar, яку я скомпілював з JDK 8, і використовував її у своєму завданні. Це давало мені якусь preDexDebugпомилку кожного разу, коли я намагався її запустити. Врешті-решт, через години спроб розшифрувати журнали помилок, я нарешті зрозумів, що не так. Я перевірив системні вимоги, змінив компілятори з 8 на 7, і це спрацювало. Схоже, що поміщення моєї банки в бібліотеку коштувало мені кількох годин, а не її збереження ...


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.