Mencari di web, tidak jelas apakah Java 8 didukung untuk pengembangan Android atau tidak.
Sebelum saya mengunduh / mengatur Java 8, dapatkah seseorang mengarahkan saya ke dokumentasi "resmi" yang mengatakan bahwa Java 8 adalah atau tidak didukung untuk pengembangan Android.
Jawaban:
java 8
Android mendukung semua fitur bahasa Java 7 dan sejumlah fitur bahasa Java 8 yang bervariasi menurut versi platform.
Untuk memeriksa fitur mana dari java 8 yang didukung
Gunakan fitur bahasa Java 8
Dukungan Fitur Masa Depan Java 8 Bahasa di Android
Pengguna Eclipse:
Untuk pengembang lama yang lebih suka Eclipse, google berhenti mendukung alat Pengembang Android Eclipse
jika Anda menginstal Java 8 JDK, maka cobalah, jika ada masalah yang muncul cobalah untuk mengatur compiler sebagai 1.6 di Eclipse dari menu window → Preferences → Java → Compiler . Java 7 juga akan berfungsi:
instal beberapa JDK dan coba.
sumber
UPDATE 2017/11/04 - Android Studio 3.0 sekarang memiliki dukungan asli untuk Java 8.
gradle-retrolambda
sekarang tidak lagi diperlukan. Lihat https://developer.android.com/studio/write/java8-support.htmlTautan di atas juga termasuk instruksi migrasi jika Anda menggunakan
gradle-retrolambda
. Jawaban asli di bawah ini:Android tidak mendukung Java 8. Ini hanya mendukung hingga Java 7 (jika Anda memiliki kitkat) dan tetap saja itu tidak diaktifkan, hanya gula sintaks yang baru.
Jika Anda ingin menggunakan lambdas, salah satu fitur utama Java 8 di Android, Anda dapat menggunakan gradle-retrolamba . Ini adalah dependensi build gradle yang mengintegrasikan retrolambda, alat yang mengubah Java 8 bytecode kembali ke Java 6/7. Pada dasarnya, jika Anda mengatur kompiler di Android Studio untuk mengkompilasi bytecode Java 8, sehingga memungkinkan lambdas, itu akan mengubahnya kembali menjadi bytecode Java 6/7 yang kemudian dikonversi menjadi bytecode dalvik. Ini peretasan jika Anda ingin mencoba beberapa fitur JDK 8 di Android sebagai pengganti dukungan resmi.
sumber
try-with-resources
hanya berfungsi sejak Kitkat.Anda memang dapat menggunakan
gradle-retrolamba
dependensi gradle build untuk menggunakan Java 8 untuk Pengembangan Android.Di bawah ini adalah panduan lengkap yang baru-baru ini saya ikuti untuk menjalankan ekspresi lambda untuk pengembangan Android. Sumber asli panduan ini disebutkan di bagian akhir.
Persiapan
Panduan ini mengasumsikan bahwa pembaca memiliki pemahaman dasar tentang Pengembangan Android dan didasarkan pada ADT versi 22.6.2 karena versi ADT terbaru 23.0.2 tampaknya memiliki masalah seperti pembuatan folder layout. Detail tentang masalah ini dapat ditemukan di bawah tautan berikut:
http://code.google.com/p/android/issues/detail?id=72591
Langkah-langkah dalam panduan ini akan diberikan untuk mesin pengembangan Windows 8.1, 64-bit tetapi mereka dapat dengan mudah diadaptasi ke platform lain. Sistem build baru
Gradle
akan digunakan untuk proses build / clean dan prosedur instalasinya juga akan disediakan. Juga, keduanyaJDK 8
danJDK 7
harus hidup berdampingan pada mesin pengembangan. Langkah-langkah yang diberikan di bawah ini harus diikuti untuk menginstalnya:bin
ke%PATH%
variabel AndaJAVA_HOME
dengan nilai path folder home JDK 8JAVA8_HOME
lagi dengan nilai path folder home JDK 8JAVA7_HOME
dengan nilai path folder home JDK 7java -version
perintah dan verifikasi bahwa Java 8 sudah aktifjavac -version
perintah di jendela yang sama dan verifikasi bahwa JDK 8 Java compiler juga aktif dan berjalanSekarang, ADT-22.6.2 harus diunduh dari tautan berikut:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
D:\adt
ANDROID_HOME
dengan nilai lintasan folder instalasi ADT Anda, misalnyaD:\adt\sdk
Andoid SDK Platform Tools
danAndoid SDK Tools
folder, misalnyaD:\adt\sdk\tools
danD:\adt\sdk\platform-tools
, untuk Anda%PATH%
variabelD:\adt\eclipse
D:\adt\workspace
Android SDK Manager
tombol yang terletak di bilah alatAndroid SDK Build tools Rev. 19.1
danAndroid Support Library
hanya. Hapus pilihan semua yang lain dan instal kedua paket ini.Jika semuanya berjalan dengan baik, ADT akan aktif dan berjalan.
Instalasi alat-alat berikut ini juga sangat dianjurkan:
Dukungan Eclipse Kepler Java 8: Itu membuat Eclipse mengenali ekstensi sintaksis Java 8 yang baru dan membuat Anda menghilangkan gangguan
red dots
pada editor kode Java Anda. Mungkin diinstal melaluiHelp -> Install New Software
di Eclipse. Masukkan http://download.eclipse.org/eclipse/updates/4.3-P-builds/ ke dalamWork with
bidang dan lanjutkan untuk menginstalnya.Nodeclipse / Enide Gradle: Ini terutama digunakan untuk menyoroti kata kunci bahasa Groovy. Groovy digunakan sebagai skrip pembuatan DSL untuk Gradle. Plugin ini dapat diinstal melalui
Eclipse Marketplace
. Namun, Eclipse dalam ADT-22.6.2 tidak datang bersamaEclipse Marketplace Client
. Oleh karena itu, Anda harus menginstal terlebih dahuluEclipse Marketplace Client
denganInstall New Software
alat di Eclipse. Masukkan http //: download.eclipse.org/mpc/kepler/ ke dalamWork with
isian dan lanjutkan untuk menginstalnya. Setelah menginstalEclipse Marketplace Client
, Anda dapat mencariNodeclipse/Enide Gradle
diEclipse Marketplace Client
dan menginstalnya.Genymotion Virtual Device: Ini adalah pengganti besar dari default
Android Virtual Device
yang datang bersama dengan ADT. AVD menjengkelkan dan terus menabrak tanpa alasan. Genymotion membuat Anda mempersiapkanCyanogenMod
gambar menggunakan Android VD yang dijalankan oleh Oracle VirtualBox . Lisensi pengguna tunggal adalah gratis dan dapat diunduh dari http://www.genymotion.com . Hanya login yang diperlukan dan itu juga dapat diintegrasikan ke dalam Eclipse. Detail dapat ditemukan di bawah:https://cloud.genymotion.com/page/doc/#collapse8
Di bawah ini adalah tangkapan layar perangkat virtual CyanogenMod berbasis Android 4.3,
Ini mungkin dianggap sebagai perangkat Android yang sepenuhnya berjalan di komputer pribadi berbasis x86 atau x64. Untuk menggunakan layanan Google seperti
Google PlayStore
pada perangkat virtual ini,gapps
gambar untuk versi Android yang digunakan harus di-flash ke perangkat.gapps
Gambar yang tepat untuk perangkat dapat diunduh dari situs web CyanogenMod:http://wiki.cyanogenmod.org/w/Google_Apps
Instalasi Gradle bersifat opsional karena juga disediakan oleh Android SDK sendiri tetapi instalasi terpisahnya sangat disarankan. Pemasangannya mungkin dilakukan dengan mengikuti langkah-langkah ini:
Pergi ke situs web Gradle: http://www.gradle.org/
Klik
Downloads
Previous Releases
pilih versi 1.10 dan unduh gradle-1.10-all.zip atau gradle-1.10-bin.zipD:\adt\gradle
GRADLE_HOME
dengan nilai path folder instalasi Gradle Anda, misD:\adt\gradle
D:\adt\gradle\bin
, ke%PATH%
variabel Andagradle -v
perintah dan verifikasi bahwa itu berjalan dan berjalan Jika Anda telah berhasil mencapai titik ini maka itu berarti Anda siap untuk membuat Aplikasi Android pertama Anda menggunakan fitur Java 8.Aplikasi Demo
Aplikasi sederhana akan dibuat untuk menunjukkan penggunaan alat yang dijelaskan di bagian sebelumnya. Anda cukup mengikuti langkah-langkah yang diberikan di bawah ini untuk mendapatkan wawasan tentang penggunaan ekspresi lambda di Alat Pengembang Android:
File -> New -> Other -> Android -> Android Application Project
Next
tombol pada formulir berikut dan klikFinish
tombol pada yang terakhir. Tunggu sampai ADT selesai memuat proyekNew -> Folder
dan beri namabuilders
gen (Generated Java Files)
folder dan hapus. Gradle akan menghasilkan file yang sama untuk kami segera dan kami akan menambahkannya kes build path. The
folder proyek gen` yang dibuat oleh pembuat Ant default tidak lagi diperlukan dan artefak di bawah folder itu akan usangBuat file batch berikut di bawah
builders
folder:Isi file batch ini sebagai berikut:
gradle_build.cmd:
gradle_post_build.cmd:
gradle_clean.cmd:
Project -> Build Automatically
pilihan menuProperties -> Builders
dan batalkan-pilih semua pembangun default yang disediakan oleh ADTNew
tombol di jendela yang sama dan pilihProgram
dan klikOK
Main
Tab Konfigurasi Pembuat yang baruRefresh
Tab Konfigurasi Pembuat yang baruEnvironment
Tab Konfigurasi Pembuat yang baruBuild Options
Tab Konfigurasi Pembuat yang baruGradle_Post_Build
yang menggunakangradle_post_build.cmd
sebagai programnya. Semua pengaturan lain dari pembuat ini harus persis sama dengan pembuat yang dibuat sebelumnya. Builder ini akan bertanggung jawab untuk menyalin artefak yang dibuat oleh proses build kebin
folder.Gradle_Cleaner
yang menggunakangradle_clean.cmd
sebagai programnya. HanyaRun the builder
pengaturan di tab terakhir yang harus ditetapkan sebagaiDuring a Clean
. Semua pengaturan lain dari pembuat ini harus persis sama dengan pembuat pertama. Pembangun ini akan bertanggung jawab untuk membersihkan artefak yang dibuat oleh proses pembuatan seperti namanya.Pembangun Baru
HelloLambda
ProyekExport
Android -> Generate Gradle Build Files
dan klikNext
Finish
gradlew
dangradlew.bat
. Hapus jugagradle
folderProject -> Clean
opsi menu. Isi formulir yang muncul sebagai berikut:Clean Project
JendelaOK
dan tunggu sampai proses pembersihan selesaisetContentView
berfungsi diMainActivity
kelas Anda :build.gradle
file hinggasourceCompatibility
bagian sebagai berikut:Properties -> Java Compiler
opsi dan atur semua level kepatuhan ke Java 8. Ini akan membuat Eclipse mengenali konstruksi Java 8 baru seperti ekspresi lambda.No
di jendela notifikasiBuild project
. Eclipse akan mulai membangun proyek.Proses Pembuatan
Klik kanan pada proyek dan pergi ke
Properties -> Java Build Path
. Tambahkan folder berikut ke jalur build (juga ditunjukkan pada gambar di bawah):build\source\buildConfig\debug
build\source\r\debug
Eclipse sekarang akan dapat mengenali
R.java
danbuildConfig.java
file dan itu tidak akan menampilkanred dots
kesalahan yang menunjukkan terkait dengan file sumber daya proyek.Run Configuration
untuk platform target Android Anda dengan mengklik kanan pada proyek dan kemudian memilihRun As -> Run Configurations
. Misalnya, aplikasi demo ini terlihat seperti yang ditunjukkan di bawah ini di Genymotion VD:Aplikasi HelloLambda
Anda dapat mengamati di
LogCat
jendela bahwa potongan kode dengan ekspresi lambda sederhana berfungsi dengan baikSumber: Menggunakan Java 8 Lambda Expressions di Alat Pengembang Android
sumber
Ikuti tautan ini untuk pembaruan baru. Gunakan fitur bahasa Java 8
Jawaban Lama
Sampai dengan Android N rilis rilis Android mendukung fitur terbatas Java 8 lihat Fitur Bahasa Java 8
Fitur dan API Bahasa Java 8 yang Didukung
Metode antarmuka standar dan statis
Ekspresi Lambda (juga tersedia di API level 23 dan lebih rendah)
Anotasi berulang
Referensi Metode (juga tersedia di API level 23 dan lebih rendah)
Ada beberapa fitur Java 8 tambahan yang didukung Android, Anda dapat melihat detail lengkap dari Java 8 Language Features
Memperbarui
Perbarui 2
Sekarang rilis stabil Android Studio 3.0 mendukung Java 8 libraries dan fitur bahasa Java 8 (tanpa kompiler Jack).
sumber
minSdkVersion
?Ya, Android Mendukung Java 8 Sekarang (24.1.17)
Sekarang mungkin
Tetapi Anda harus menjalankan perangkat rom di java 1.8 dan mengaktifkan "jackOptions" untuk menjalankannya. Jack adalah nama untuk kompiler Android baru yang menjalankan Java 8
https://developer.android.com/guide/platform/j8-jack.html
tambahkan baris ini ke build_gradle
Java 8 tampaknya menjadi mesin java menjalankan Android studio 2.0, Tapi itu masih tidak menerima sintaks java 8 setelah saya periksa, dan Anda tidak dapat memilih kompiler dari android studio sekarang. Namun, Anda dapat menggunakan plugin scala jika Anda memerlukan mekanisme pemrograman fungsional di klien android Anda.
sumber
Android menggunakan Java yang bercabang dari Java 6.
Pada Android SDK versi 19, Anda dapat menggunakan fitur Java 7 dengan melakukan ini . Belum ada dukungan penuh untuk Java 8 (belum).
sumber
Native Java 8 tiba di android! Akhirnya!
Untuk mulai menggunakan fitur bahasa Java 8 yang didukung, perbarui plugin Android ke 3.0.0 (atau lebih tinggi)
Dimulai dengan Android Studio 3.0, fitur Java 8 sekarang didukung oleh android:
Juga dari min API level 24, Java 8 API berikut ini tersedia:
Tambahkan baris ini ke build.gradle modul aplikasi Anda untuk memberi tahu proyek tingkat bahasa:
Nonaktifkan Dukungan untuk Fitur Bahasa Java 8 dengan menambahkan berikut ini ke file gradle.properties Anda :
Kamu sudah selesai! Anda sekarang dapat menggunakan java8 asli!
sumber
Android RESMI mendukung Java 8 pada Android N.
Pengumuman fitur di sini , pengumuman bahasa Java 8 adalah:
sumber
Kita Dapat Menggunakan Java 8 menggunakan:
Di build.gradle (Project: myProject) tambahkan berikut ini
Di build.gradle (Module: myModule) tambahkan berikut ini
sumber
UPDATE 2020/01/17
Android Studio 4.0 mencakup dukungan untuk menggunakan sejumlah API bahasa Java 8, dengan menggunakan teknik yang disebut desugaring, tanpa memerlukan tingkat API minimum untuk aplikasi Anda:
https://developer.android.com/studio/preview/features#j8-desugar
POST ASLI DARI 2017
Android Studio 3.0 mulai menyediakan dukungan bawaan untuk beberapa fitur bahasa Java 8, yaitu:
Juga mulai dari API level 24, Java 8 API berikut tersedia:
java.util.stream
java.util.function
java.lang.FunctionalInterface
java.lang.annotation.Repeatable
java.lang.reflect.AnnotatedElement.getAnnotationsByType(Class)
java.lang.reflect.Method.isDefault()
Selain itu,
try-with-resources
dukungan diperluas ke semua level Android API.Lebih banyak fitur Java 8 dijanjikan akan ditambahkan di masa mendatang.
Untuk detail lebih lanjut, kunjungi:
https://developer.android.com/studio/write/java8-support.html
sumber
2.4.0-alpha6
). Silakan periksa blok kutipan di jawabannya.Jalan mudah
Anda dapat mengaktifkan dukungan java 1.8 untuk proyek android.
Buka Struktur Proyek
Baik dengan menekan Ctrl + Shift + Alt + S
Atau
File > Project Structure
Perbarui Kompatibilitas Sumber dan Kompatibilitas Target ke 1.8 dalam dialog Struktur Proyek seperti yang ditunjukkan (klik File> Struktur Proyek).
Atau Anda bisa menggunakan gradle
Sinkronkan proyek. Dan itu dia!
Catatan: Dukungan Java 1.8 dapat diaktifkan untuk Android Studio 3.0.0 atau lebih tinggi. Lihat Dokumentasi untuk bacaan lebih lanjut.
sumber
Ketika saya menanyakan pertanyaan ini hampir 2 tahun yang lalu, jawabannya benar-benar "resmi" tidak, tetapi seperti yang ditunjukkan oleh jawaban ekcr1 Anda bisa mendapatkan salah satu fitur yang paling dinanti-nanti (lambdas) untuk bekerja jika Anda menggunakan retrolamba. Pada saat itu saya masih menggunakan eclipse, karena Android Studio berada dalam mode "preview", jadi saya tidak pernah mengejar jalur ini.
Hari ini, saya pikir jawaban "resmi" masih belum ada, dan sementara retrolamba sepertinya merupakan cara yang baik untuk pergi, ada pilihan lain bagi mereka yang mau turun dengan rute yang agak "tidak resmi", yaitu Kotlin.
Hari ini Kotlin mencapai 1.0.0. Bagi mereka yang tidak terbiasa dengan Kotlin, info lebih lanjut dapat ditemukan di situs web mereka yang ditemukan di sini:
https://kotlinlang.org
atau tonton video utube ini dari ceramah yang diberikan oleh Jake Wharton
https://www.youtube.com/watch?v=A2LukgT2mKc
sumber
Berita terbaru:
Google mengumumkan bahwa dengan Android N dan Android Studio 2.1+, platform akan mendukung Java 8. Juga versi stabil dari studio 2.1 dirilis.
Akhirnya kita bisa menggunakan ekspresi lambda. Tidak ada lagi filter daftar untuk loop. Horeeey.
sumber
Tambahkan build.gradle konfigurasi ini dan sinkronkan gradle:
sumber
Google baru saja mengumumkan bahwa Java 8 secara native akan didukung oleh Android dan bahwa toolchain Jack akan usang:
Info lebih lanjut di sini: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
sumber
Iya. Kami akan segera menggunakan Java 8!
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
sumber
tambahkan baris ini ke modul lvl build gradel
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
sumber
Saya menulis jawaban yang mirip dengan pertanyaan serupa tentang Stack Overflow, tetapi di sini ada bagian dari jawaban itu.
Android Studio 2.1:
Versi baru Android Studio (2.1) memiliki dukungan untuk fitur Java 8. Berikut adalah kutipan dari posting blogspot Pengembang Android :
Sebelum ke Android Studio 2.1:
Android belum mendukung Java 1.8 (hanya mendukung hingga 1.7), jadi Anda tidak dapat menggunakan fitur Java 8 seperti lambdas.
Jawaban ini memberikan detail lebih lanjut tentang kompatibilitas Android Studio ; itu menyatakan:
Jika Anda ingin tahu lebih banyak tentang cara menggunakan
gradle-retrolambda
, jawaban ini memberikan banyak detail untuk melakukannya .sumber
"SDK Location"
(ini pada Mac FWIW) hanya mengatakan"/Users/me/Library/Android/sdk"
Apakah saya menggunakan Java8 - bagaimana cara menggunakan Java8 ?? Terima kasih!Saya pikir saya akan memposting jawaban yang diperbarui untuk mereka yang mencari sesuatu yang lebih terkini.
Saat ini Android dan Android Studio mendukung subset fitur Java 8. Menurut dokumentasi Android yang terdapat di situs web mereka , Google mengatakan:
Selain itu, API bahasa Java 8 berikut juga tersedia:
sumber
Saya menanyakan pertanyaan ini lebih dari 3 tahun yang lalu dan jelas jawabannya telah berubah selama bertahun-tahun. Seperti yang telah dijawab oleh banyak orang di atas, pada suatu waktu, jawabannya menjadi Ya . Saya belum pernah memperbarui jawaban yang diterima karena itu adalah jawaban yang benar pada saat itu. (Saya tidak yakin apa kebijakan Stack Overflow itu)
Saya hanya ingin menambahkan jawaban lain untuk mereka yang masih mencari topik ini. Pada 5/17/2017 Google juga mengumumkan bahwa Kotlin juga merupakan bahasa resmi untuk pengembangan Android.
Saya belum menemukan siaran pers resmi, tetapi saya menonton beberapa video Google I / O di mana ia diumumkan. Berikut ini tautan ke posting blog oleh tim Kotlin pada pengumuman tersebut.
sumber
Menambahkan hal berikut ini memperbaiki masalah saya (Android studio 2.3.2):
build.gradle (Proyek)
build.gradle (Modul: aplikasi)
sumber
Subset Java 8 sekarang didukung di Android Studio. Cukup sesuaikan penyesuaian Sumber dan Target dari jendela di bawah ini:
File -> Struktur Proyek
Informasi lebih lanjut diberikan di tautan di bawah ini.
https://developer.android.com/studio/write/java8-support.html
sumber
UPDATE 2019/10/28
Android Studio 4.0 menyelesaikan masalah ini .
Kompiler D8 menambal backport API asli Java 8 ke dalam APK Anda pada waktu kompilasi dan aplikasi Anda akan menggunakan kode itu, alih-alih API asli, saat runtime. Proses ini disebut desugaring .
sumber
Semua solusi di atas tampaknya tidak berfungsi pada tahun 2019 dengan Android Studio 3.4+ terbaru .
Saya menemukan solusi yang sempurna dan terkini untuk bermigrasi atau meningkatkan Proyek Android Anda ke Java 8 .
Solusi: Klik pada File -> Struktur Proyek -> Modul -> tab Properties .
Ubah Kompatibilitas Sumber dan Kompatibilitas Target ke 1.8 (Java 8)
sumber
Ya, Anda dapat menggunakan fitur Java 8 Language di Android Studio tetapi versinya harus 3.0 atau lebih tinggi. Baca artikel ini untuk cara menggunakan fitur java 8 di studio android.
https://bijay-budhathoki.blogspot.com/2020/01/use-java-8-language-features-in-android-studio.html
sumber
Cara termudah untuk menambahkan dukungan Java 8
Cukup tambahkan di file build.gradle Anda.
sumber