Estou recebendo o seguinte erro ao tentar compilar meu projeto no Android Studio:
Gradle: error: diamond operator is not supported in -source 1.6
Eu tenho 1.7 definido como destino em todas as preferências do projeto que encontrei. Além disso, o caminho exibido nos SDKs do projeto em 1.7 SDK é o caminho correto para a instalação do Java 1.7.
Mesmo quando executo java -version no terminal, ele diz que estou executando o java 1.7.
Eu tentei definir a variável env JAVA_HOME para isso:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
O erro não desaparece. Como elimino o erro?
java
intellij-idea
gradle
android-studio
java-7
simekadam
fonte
fonte
sourceCompatibility
configurou em seu build.gradle?Respostas:
O suporte ao Java 7 foi adicionado nas ferramentas de construção 19. Agora você pode usar recursos como o operador diamond, multi-catch, try-with-resources, strings em switches, etc. Adicione o seguinte ao seu
build.gradle
.Gradle 1.7+, é necessário o plug-in Android gradle 0.6. +.
Observe que apenas tentar recursos requer
minSdkVersion
19. Outros recursos funcionam em plataformas anteriores.Link para o guia do usuário do plugin android gradle
Link para ver como a origem e o destino são diferentes
fonte
Talvez essas respostas acima sejam antigas, mas com o novo Android Studios 1, faça o seguinte para ver o módulo rodar em 1.7 (ou 1.6, se preferir). Clique em Arquivo -> Estrutura do Projeto. Selecione o módulo que você deseja executar e, em "Compatibilidade de origem" e "Compatibilidade de destino", selecione 1.7. Clique OK".
fonte
Você pode alterá-lo na nova versão do Android studio (0.8.X)
Arquivo-> Outras Configurações -> Configurações Padrão -> Compilador (Expanda-o clicando na seta esquerda) -> Java Compiler -> Você pode alterar a versão do bytecode do Projeto aqui
fonte
Mais recente Android Studio 1.4.
Clique em Arquivo-> Estrutura do Projeto-> Local do SDK-> Local do JDK.
Você também pode definir a compatibilidade da versão JDK do módulo individual acessando o módulo (abaixo do local do SDK) e editando a compatibilidade de origem de acordo. (observe, isso se aplica apenas ao módulo Android).
fonte
Clique com o botão direito do mouse em seu projeto> Abrir Configuração do Módulo> Selecione "Projeto" na seção "Configuração do Projeto"
Altere o SDK do projeto para mais recente (pode ser a API 21) e o nível de idioma do projeto para 7+
fonte
Atualmente, o Android não suporta Java 7, apenas Java 6. Novos recursos no Java 7, como a sintaxe de diamante, não são, portanto, suportados no momento. Encontrar fontes para suportar isso não é fácil, mas eu pude descobrir que o mecanismo Dalvic é construído sobre um subconjunto do Apache Harmony que só suportava Java até a versão 6. E se você verificar os requisitos do sistema para o desenvolvimento de aplicativos Android, também indicará que pelo menos o JDK 6 é necessário (embora isso obviamente não seja uma prova real, apenas uma indicação). E isso diz praticamente o mesmo que eu. Se eu encontrar algo mais substancial, vou adicioná-lo.
Editar: Parece que o suporte ao Java 7 foi adicionado desde que escrevi originalmente esta resposta; verifique a resposta de Sergii Pechenizkyi .
fonte
Sempre use a versão mais recente do SDK para criar:
Isso não afeta o comportamento do tempo de execução , mas fornece os recursos de programação mais recentes.
fonte
Vá para o seu Gradle e procure o sourceCompatibility e altere-o de 1.6 para 7 . Isso funcionou para mim, pelo menos.
Você também pode acessar as configurações do módulo e definir a Compatibilidade de Origem / Destino como 1.7.
Janela de configurações do módulo
Isso produzirá o seguinte código no seu Gradle:
fonte