Pesquisando na web, não está claro se o Java 8 é suportado para desenvolvimento do Android ou não.
Antes de baixar / configurar o Java 8, alguém pode me apontar para qualquer documentação "oficial" que diga que o Java 8 é ou não é suportado no desenvolvimento do Android.
Respostas:
java 8
O Android suporta todos os recursos da linguagem Java 7 e um subconjunto de recursos da linguagem Java 8 que variam de acordo com a versão da plataforma.
Para verificar quais recursos do java 8 são suportados
Use os recursos da linguagem Java 8
Futuro do suporte a recursos da linguagem Java 8 no Android
Usuários do Eclipse:
Para desenvolvedores antigos que preferem o Eclipse, o Google Stop suporta as ferramentas de desenvolvedor do Eclipse Android
se você instalou o Java 8 JDK, tente se houver algum problema, tente configurar o compilador como 1.6 no Eclipse no menu da janela → Preferências → Java → Compilador . O Java 7 também funciona:
instale vários JDK e tente.
fonte
ATUALIZAÇÃO 4/11/11 - O Android Studio 3.0 agora tem suporte nativo para Java 8.
gradle-retrolambda
agora não é mais necessário. Consulte https://developer.android.com/studio/write/java8-support.htmlO link acima também inclui instruções de migração se você estiver usando
gradle-retrolambda
. Resposta original abaixo:O Android não suporta o Java 8. Ele suporta apenas o Java 7 (se você tiver kitkat) e ainda não possui o invokedynamic, apenas o novo açúcar de sintaxe.
Se você deseja usar lambdas, um dos principais recursos do Java 8 no Android, pode usar o gradle-retrolamba . É uma dependência de compilação gradle que integra retrolambda, uma ferramenta que converte o bytecode do Java 8 em Java 6/7. Basicamente, se você configurar o compilador no Android Studio para compilar o Java 8 bytecode, permitindo assim lambdas, ele o converterá novamente em Java 6/7 bytecode, que por sua vez será convertido em dalvik bytecode. É um truque para, se você quiser experimentar alguns recursos do JDK 8 no Android, em vez de suporte oficial.
fonte
try-with-resources
funciona apenas desde Kitkat.Você pode realmente usar a
gradle-retrolamba
dependência do gradle build para usar o Java 8 for Android Development.Abaixo está o guia completo que segui recentemente para executar expressões lambda para o desenvolvimento do Android. A fonte original deste guia é mencionada no final.
Preparação
Este guia pressupõe que o leitor tenha um entendimento básico do Android Development e seja baseado na versão 22.6.2 do ADT, porque a versão 23.0.2 recente do ADT parece ter problemas como a criação da pasta de layout. Detalhes sobre esse problema podem ser encontrados no seguinte link:
http://code.google.com/p/android/issues/detail?id=72591
As etapas deste guia serão fornecidas para uma máquina de desenvolvimento Windows 8.1 de 64 bits , mas elas podem ser facilmente adaptadas a outras plataformas. O novo sistema de compilação
Gradle
será usado para processos de compilação / limpeza e seu procedimento de instalação também será fornecido. Além disso, ambosJDK 8
eJDK 7
devem coexistir na máquina de desenvolvimento. As etapas abaixo devem ser seguidas para instalá-las:bin
à sua%PATH%
variávelJAVA_HOME
com o valor do caminho da pasta inicial do JDK 8JAVA8_HOME
novamente com o valor do caminho da pasta inicial do JDK 8JAVA7_HOME
com o valor do caminho da pasta inicial do JDK 7java -version
comando e verifique se o Java 8 está em funcionamentojavac -version
comando na mesma janela e verifique se o compilador JDK 8 Java também está instalado e em execuçãoAgora, o ADT-22.6.2 deve ser baixado no seguinte link:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
D:\adt
ANDROID_HOME
com o valor do caminho da sua pasta de instalação do ADT, por exemploD:\adt\sdk
Andoid SDK Platform Tools
eAndoid SDK Tools
, por exemplo ,D:\adt\sdk\tools
eD:\adt\sdk\platform-tools
, à sua%PATH%
variávelD:\adt\eclipse
D:\adt\workspace
Android SDK Manager
botão localizado na barra de ferramentasAndroid SDK Build tools Rev. 19.1
eAndroid Support Library
somente. Desmarque todo o resto e instale esses dois pacotes.Se tudo correr bem, o ADT estará em funcionamento.
A instalação das seguintes ferramentas também é altamente recomendada:
Suporte ao Eclipse Kepler para Java 8: Faz o Eclipse reconhecer novas extensões de sintaxe do Java 8 e faz com que você se livre de irritações
red dots
no seu editor de código Java. Pode ser instaladoHelp -> Install New Software
no Eclipse. Digite http://download.eclipse.org/eclipse/updates/4.3-P-builds/ noWork with
campo e continue a instalá-lo.Nodeclipse / Enide Gradle: É usado principalmente para destacar palavras-chave do idioma Groovy. Groovy é usado como o DSL para scripts de compilação Gradle. Este plugin pode ser instalado através do
Eclipse Marketplace
. No entanto, o Eclipse no ADT-22.6.2 não vem juntoEclipse Marketplace Client
. Portanto, você primeiro precisará instalarEclipse Marketplace Client
por meio daInstall New Software
ferramenta no Eclipse. Digite http //: download.eclipse.org/mpc/kepler/ noWork with
campo e continue a instalá-lo. Após a instalaçãoEclipse Marketplace Client
, você pode procurarNodeclipse/Enide Gradle
noEclipse Marketplace Client
e instalá-lo.Dispositivo virtual Genymotion: É um ótimo substituto do padrão
Android Virtual Device
que acompanha o ADT. O AVD é irritantemente pesado e continua batendo sem motivo. O Genymotion faz com que você prepare VDs do Android usandoCyanogenMod
imagens executadas pelo Oracle VirtualBox . Sua licença de usuário único é gratuita e pode ser baixada em http://www.genymotion.com . Apenas um login é necessário e também pode ser integrado ao Eclipse. Detalhes podem ser encontrados em:https://cloud.genymotion.com/page/doc/#collapse8
Abaixo está uma captura de tela de um dispositivo virtual CyanogenMod baseado no Android 4.3,
Pode ser considerado um dispositivo Android completo, executado em um computador pessoal baseado em x86 ou x64. Para usar os serviços do Google, como
Google PlayStore
neste dispositivo virtual, umagapps
imagem da versão Android usada deve ser exibida no dispositivo. Umagapps
imagem adequada para o dispositivo pode ser baixada do site da CyanogenMod:http://wiki.cyanogenmod.org/w/Google_Apps
A instalação do Gradle é opcional, pois também é fornecida pelo próprio SDK do Android, mas sua instalação separada é altamente recomendada. A instalação pode ser realizada seguindo estas etapas:
Acesse o site da Gradle: http://www.gradle.org/
Clique
Downloads
Previous Releases
escolha a versão 1.10 e baixe gradle-1.10-all.zip ou gradle-1.10-bin.zipD:\adt\gradle
GRADLE_HOME
com o valor do caminho da sua pasta de instalação Gradle, por exemploD:\adt\gradle
D:\adt\gradle\bin
, à sua%PATH%
variávelgradle -v
comando e verifique se está funcionando Se você chegou a este ponto com êxito, significa que está pronto para criar seu primeiro aplicativo Android usando os recursos do Java 8.Demo App
Um aplicativo simples será criado para demonstrar o uso das ferramentas descritas na seção anterior. Você pode simplesmente seguir as etapas fornecidas abaixo para obter uma idéia sobre o uso de expressões lambda nas Ferramentas do desenvolvedor do Android:
File -> New -> Other -> Android -> Android Application Project
Next
botão nos seguintes formulários e clique noFinish
botão no último. Aguarde até o ADT terminar de carregar o projetoNew -> Folder
e nomeie-obuilders
gen (Generated Java Files)
pasta e exclua-a. Gradle gerará os mesmos arquivos para nós em breve e os adicionaremos às build path. The
pasta gen do projeto criada pelo construtor Ant padrão não é mais necessária e os artefatos nessa pasta ficarão obsoletosCrie os seguintes arquivos em lotes na
builders
pasta:Preencha esses arquivos em lotes da seguinte maneira:
gradle_build.cmd:
gradle_post_build.cmd:
gradle_clean.cmd:
Project -> Build Automatically
opção de menuProperties -> Builders
e desmarque todos os construtores padrão fornecidos pelo ADTNew
botão na mesma janela e selecioneProgram
e clique emOK
Main
Guia da nova configuração do construtorRefresh
Guia da nova configuração do construtorEnvironment
Guia da nova configuração do construtorBuild Options
Guia da nova configuração do construtorGradle_Post_Build
que usagradle_post_build.cmd
como seu programa. Todas as outras configurações deste construtor devem ser exatamente iguais às do construtor criado anteriormente. Esse construtor será responsável por copiar os artefatos criados pelo processo de construção nabin
pasta.Gradle_Cleaner
que usagradle_clean.cmd
como seu programa. Somente aRun the builder
configuração na guia final deve ser definida comoDuring a Clean
. Todas as outras configurações deste construtor devem ser exatamente iguais com o primeiro construtor. Esse construtor será responsável pela limpeza dos artefatos criados pelo processo de construção, conforme o nome sugere.Novos Construtores do
HelloLambda
ProjetoExport
Android -> Generate Gradle Build Files
e cliqueNext
Finish
gradlew
egradlew.bat
. Excluir tambémgradle
pastaProject -> Clean
opção de menu. Preencha o formulário que aparece da seguinte maneira:Clean Project
JanelaOK
e aguarde até que o processo de limpeza seja concluídosetContentView
funcionar em suaMainActivity
classe:build.gradle
arquivo até asourceCompatibility
seção da seguinte maneira:Properties -> Java Compiler
opção e defina todos os níveis de conformidade como Java 8. Isso fará com que o Eclipse reconheça novas construções do Java 8 como expressões lambda.No
na janela de notificaçãoBuild project
. O Eclipse começará a construir o projeto.Processo de compilação
Clique com o botão direito do mouse no projeto e vá para
Properties -> Java Build Path
. Adicione as seguintes pastas ao caminho da compilação (também mostrado na imagem abaixo):build\source\buildConfig\debug
build\source\r\debug
O Eclipse agora poderá reconhecer
R.java
ebuildConfig.java
arquivos e não exibirá nenhumred dots
que indique erros relacionados aos arquivos de recursos do projeto.Run Configuration
para sua plataforma de destino Android clicando com o botão direito do mouse no projeto e selecionandoRun As -> Run Configurations
. Por exemplo, este aplicativo de demonstração se parece com o mostrado abaixo no Genymotion VD:Aplicação HelloLambda
Você pode observar na
LogCat
janela que o trecho de código com uma expressão lambda simples funciona corretamenteFonte: Usando expressões Java 8 Lambda nas ferramentas do desenvolvedor do Android
fonte
Siga este link para novas atualizações. Use os recursos da linguagem Java 8
Resposta antiga
A partir da versão de pré-visualização do Android N, o Android suporta recursos limitados do Java 8, consulte Recursos da linguagem Java 8
Recursos e APIs da linguagem Java 8 suportados
Métodos de interface estáticos e padrão
Expressões Lambda (também disponíveis na API nível 23 e inferior)
Anotações repetíveis
Referências de método (também disponíveis na API nível 23 e inferior)
Existem alguns recursos adicionais do Java 8 suportados pelo Android, você pode ver detalhes completos em Recursos do idioma do Java 8
Atualizar
Atualização 2
Agora, a versão estável do Android studio 3.0 suporta bibliotecas Java 8 e recursos da linguagem Java 8 (sem o compilador Jack).
fonte
minSdkVersion
?Sim, o Android suporta Java 8 Now (24.1.17)
Agora é possivel
Mas você precisará que seu dispositivo seja executado no java 1.8 e habilite "jackOptions" para executá-lo. Jack é o nome do novo compilador Android que executa o Java 8
https://developer.android.com/guide/platform/j8-jack.html
adicione estas linhas ao build_gradle
O Java 8 parece ser o mecanismo java em execução do Android studio 2.0, mas ainda não aceita a sintaxe do java 8 após a verificação, e você não pode escolher um compilador no android studio agora. No entanto, você pode usar o plug-in scala se precisar de um mecanismo de programação funcional no seu cliente Android.
fonte
O Android usa um Java que se ramifica do Java 6.
A partir do Android SDK versão 19, você pode usar os recursos do Java 7 fazendo isso . Não há suporte completo para Java 8 (ainda).
fonte
Java nativo 8 chega no android! Finalmente!
Para começar a usar os recursos de idioma Java 8 suportados, atualize o plug-in Android para 3.0.0 (ou superior)
A partir do Android Studio 3.0, os recursos da linguagem Java 8 agora são suportados nativamente pelo android:
Também a partir do nível mínimo API 24, a seguinte API Java 8 está disponível:
Inclua estas linhas no build.gradle do seu módulo de aplicativo para informar o projeto sobre o nível do idioma:
Desative o Suporte para os recursos da linguagem Java 8 adicionando o seguinte ao seu arquivo gradle.properties :
Você Terminou! Agora você pode usar o java8 nativo!
fonte
O Android OFICIALMENTE suporta Java 8 a partir do Android N.
Os anúncios de recursos estão aqui , o anúncio da linguagem Java 8 é:
fonte
Podemos usar o Java 8 usando:
Em build.gradle (Project: myProject), adicione o seguinte
Em build.gradle (Módulo: myModule), adicione o seguinte
fonte
ATUALIZAÇÃO 2020/01/17
O Android Studio 4.0 inclui suporte para o uso de várias APIs da linguagem Java 8, usando a técnica chamada desugaring, sem exigir um nível mínimo de API para o seu aplicativo:
https://developer.android.com/studio/preview/features#j8-desugar
POSTO ORIGINAL DE 2017
O Android Studio 3.0 começou a fornecer suporte interno para alguns dos recursos da linguagem Java 8, que são:
Também a partir do nível da API 24, a seguinte API Java 8 está disponível:
java.util.stream
java.util.function
java.lang.FunctionalInterface
java.lang.annotation.Repeatable
java.lang.reflect.AnnotatedElement.getAnnotationsByType(Class)
java.lang.reflect.Method.isDefault()
Além disso, o
try-with-resources
suporte foi estendido a todos os níveis da API do Android.É prometido que mais recursos do Java 8 sejam adicionados no futuro.
Para mais detalhes, visite:
https://developer.android.com/studio/write/java8-support.html
fonte
2.4.0-alpha6
). Por favor, verifique o bloco de cotação na resposta.Jeito fácil
Você pode ativar o suporte ao java 1.8 para o projeto android.
Estrutura de projeto aberto
Ou pressionando Ctrl + Shift + Alt + S
Ou
File > Project Structure
Atualize a Compatibilidade de origem e a Compatibilidade de destino para 1,8 na caixa de diálogo Estrutura do projeto, como mostrado (clique em Arquivo> Estrutura do projeto).
Ou você pode usar gradle
Projeto de sincronização. E é isso!
Nota: O suporte a Java 1.8 pode ser ativado para Android Studio 3.0.0 ou superior. Consulte a documentação para obter mais leituras.
fonte
Quando eu fiz essa pergunta há quase dois anos, a resposta realmente era “oficialmente” não, mas, como apontado pela resposta do ekcr1, você pode obter um dos recursos mais esperados (lambdas) para funcionar se você usar o retrolamba. Na época, eu ainda estava usando o eclipse, já que o Android Studio estava no modo "preview", então nunca segui esse caminho.
Hoje, acho que a resposta "oficial" ainda não é, e embora o retrolamba ainda pareça um bom caminho a percorrer, há outra opção para aqueles dispostos a seguir um caminho um tanto "não oficial", o Kotlin.
Hoje o Kotlin alcançou a 1.0.0. Para aqueles que não estão familiarizados com o Kotlin, mais informações podem ser encontradas no site encontrado aqui:
https://kotlinlang.org
ou assista a este vídeo utube de uma palestra proferida por Jake Wharton
https://www.youtube.com/watch?v=A2LukgT2mKc
fonte
Últimas notícias:
O Google anuncia que, com o Android N e o Android Studio 2.1+, a plataforma suporta Java 8. Também foi lançada a versão estável do studio 2.1.
Finalmente, podemos usar expressões lambda. Não há mais filtro de lista no loop for. Horeeey.
fonte
Adicione esta configuração build.gradle e sync gradle:
fonte
O Google acaba de anunciar que o Java 8 será nativamente suportado pelo Android e que a cadeia de ferramentas Jack será descontinuada:
Mais informações aqui: https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
fonte
Sim. Em breve, usaremos o Java 8!
https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
fonte
adicione esta linha ao módulo lvl build gradel
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
fonte
Eu escrevi uma resposta semelhante para uma pergunta semelhante no Stack Overflow, mas aqui está parte dessa resposta.
Android Studio 2.1:
A nova versão do Android Studio (2.1) oferece suporte aos recursos do Java 8. Aqui está um extrato da postagem do blog Android Developers :
Antes do Android Studio 2.1:
O Android ainda não suporta Java 1.8 (ele suporta apenas 1.7), portanto, você não pode usar recursos do Java 8 como lambdas.
Esta resposta fornece mais detalhes sobre a compatibilidade do Android Studio ; declara:
Se você quiser saber mais sobre o uso
gradle-retrolambda
, esta resposta fornece muitos detalhes sobre isso .fonte
"SDK Location"
(isso está em um Mac FWIW) apenas diz"/Users/me/Library/Android/sdk"
Estou usando o Java8 - como usar o Java8? Obrigado!Pensei em postar uma resposta atualizada para quem procura algo um pouco mais atual.
Atualmente, o Android e o Android Studio suportam um subconjunto de recursos do Java 8. De acordo com a documentação do Android localizada em seu site , o Google diz:
Além disso, as seguintes APIs da linguagem Java 8 também estão disponíveis:
fonte
Eu fiz essa pergunta há mais de 3 anos e, obviamente, as respostas mudaram ao longo dos anos. Como muitos acima já responderam, já há algum tempo, a resposta se tornou Sim . Eu nunca atualizei a resposta aceita porque era a resposta correta no momento. (Não tenho certeza de qual é a política de estouro de pilha)
Eu só queria adicionar outra resposta para aqueles que ainda procuram este tópico. Em 17/05/2017, o Google também anunciou que o Kotlin também é um idioma oficial para o desenvolvimento do Android.
Não encontrei um comunicado de imprensa oficial, mas assisti a alguns dos vídeos de E / S do Google onde foi anunciado. Aqui está um link para uma postagem de blog da equipe Kotlin no anúncio.
fonte
A adição do seguinte corrigiu o problema para mim (Android studio 2.3.2):
build.gradle (Projeto)
build.gradle (módulo: app)
fonte
Um subconjunto do Java 8 é suportado agora no Android Studio. Basta fazer os ajustes de compatibilidade de origem e destino na janela abaixo:
Arquivo -> Estrutura do Projeto
Mais informações são fornecidas no link abaixo.
https://developer.android.com/studio/write/java8-support.html
fonte
ATUALIZAÇÃO 2019/10/28
O Android Studio 4.0 resolve esse problema .
O compilador D8 corrige um backport das APIs nativas do Java 8 em seu APK no momento da compilação e seu aplicativo usará esse código, em vez das APIs nativas, em tempo de execução. O processo é chamado de dessugar .
fonte
Todas as soluções acima parecem não funcionar em 2019 com o mais recente Android Studio 3.4+ .
Eu descobri uma solução perfeita e atualizada para migrar ou atualizar seu projeto Android para Java 8 .
Solução: Clique em Arquivo -> Estrutura do Projeto -> Módulos -> guia Propriedades .
Altere a compatibilidade de origem e de destino para 1,8 (Java 8)
fonte
Sim, você pode usar os recursos da linguagem Java 8 no Android Studio, mas a versão deve ser 3.0 ou superior. Leia este artigo para saber como usar os recursos do java 8 no android studio.
https://bijay-budhathoki.blogspot.com/2020/01/use-java-8-language-features-in-android-studio.html
fonte
A maneira mais fácil de adicionar suporte ao Java 8
Basta adicioná-lo ao seu arquivo build.gradle.
fonte