Ao tentar executar o exemplo CorDapp ( https://github.com/corda/cordapp-example ) via IntelliJ, recebo o seguinte erro:
Não é possível bytecode embutido criado com o destino da JVM 1.8 no bytecode que está sendo construído com o destino 1.6 da JVM
Como posso modificar as configurações do IntelliJ para que todo o bytecode seja construído com o mesmo destino da JVM?
build.gradle
dependências {compilação ( "org.jetbrains.kotlin: Kotlin-stdlib-jdk8")}Respostas:
app / build.gradle
GL
Use os recursos da linguagem Java 8
fonte
kotlinOptions { jvmTarget = "1.8" }
deve ser suficiente.Você pode corrigir esse problema da seguinte maneira:
Build, Execution, Deployment
>Compiler
>Kotlin Compiler
MASOther Settings
>Kotlin compiler
se Android contexto>3.4
Target JVM version
para1.8
Apply
fonte
Target platform
para JVM 1.8 em suaKotlin
faceta, naGeneral
guiaKotlin Compiler
configurações foram realmente colocadas emOther Settings
seção.você deve configurar algo como a seguir em build.gradle
fonte
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions.jvmTarget = "1.8" }
kotlin-android
plugin?No meu caso, apenas alterar a Versão da JVM de destino da seguinte forma: Arquivo> Configuração> Compilador Kotlin> Versão da JVM de destino> 1.8 não ajudou. No entanto, ele resolveu o erro de tempo de compilação. Mas falhou no tempo de execução.
Eu também tive que adicionar o seguinte no arquivo build.gradle do aplicativo para fazê-lo funcionar.
fonte
Quando as outras soluções não funcionaram para você (Alterando a versão da JVM nas configurações do Compiler e adicionando
jvmTarget
à suabuild.gradle
), por causa de seus.iml
arquivos tentarem forçar suas configurações, você pode alterar a plataforma de destino em Configurações do Projeto.File > Project Structure
Facets
abaixoProject Settings
+
botão pequenoTarget Platform
paraJVM 1.8
(também é melhor verificar aUse project settings
opção)fonte
<configuration version="3" platform="JVM 1.8" useProjectSettings="false">
atrue
e funcionou. No entanto, o arquivo continua mudando de volta!No meu caso, esse código não funcionou até eu passar
apply plugin: 'kotlin-android'
de baixo para cima.fonte
No Android Studio 4.3.2, a adição do procedimento abaixo não está funcionando.
O motivo é que o Android studio não pode adicionar o código abaixo no arquivo Gradle no nível do módulo. Por favor, adicione-o manualmente.
Apenas para o complemento, procure a versão Target JVM na pesquisa de estúdio do Android. O levará diretamente à opção.
fonte
uma imagem vale mais que mil palavras
fonte
Feb 2020
android 3.4+
Vá para Arquivo -> Configurações -> Compilador Kotlin -> Versão da JVM de destino> definido como 1.8 e, em seguida, certifique-se de fazer Arquivo -> Sincronizar projeto com arquivos Gradle
Ou adicione isso em build.gradle (module: app) no bloco android :
fonte
Como está escrito nos documentos using-maven do site da Kotlin:
Você só precisa colocar
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
na seção de propriedades do seu pom.xmlfonte
Se você tiver muitos conjuntos de fontes / módulos, pode ser complicado configurar o jvmTarget para cada um deles separadamente.
Você pode configurar o jvmTarget para todos eles de uma vez da seguinte maneira:
Esse snippet pode ser usado no nível superior do seu arquivo gradle.build
Depois de modificar o arquivo gradle
Reimport All Gradle Imports
. Para verificar se funcionou, abraProject Structure
e verifique se o IntelliJ foi atribuído corretamenteJVM 1.8
a todos os módulos Kotlin. Deve ficar assim:Eu não recomendaria alterar a plataforma diretamente no IntelliJ, porque qualquer outra pessoa que clonar seu projeto pela primeira vez provavelmente enfrentará o mesmo problema. A configuração correta no gradle tem a vantagem de que o IntelliJ se comportará corretamente para eles desde o início.
fonte
No meu caso, resolvi isso seguindo estas duas etapas
fonte
Para mim, o motivo foi essa configuração no meu build gradle estar em alguns módulos e em alguns não
fonte
Para Gradle com o idioma Kotlin (
*.gradle.kts
arquivos), adicione este:fonte
this
aKotlinJvmOptions
. Othis
receptorkotlinOptions
já não está no blocoKotlinJvmOptions
? Ainda assim ele não funciona para mim sem o elencona maioria dos casos, isso é suficiente:
se você declarou tarefas Gradle personalizadas, como
integrationTest
por exemplo, adicione uma configuração paracompile<YourTaskName>Kotlin
:fonte
A configuração
sourceCompatibility = JavaVersion.VERSION_1_8
ativa a remoção de açúcar, mas atualmente não é possível remover todos os recursos do Java 8 que o compilador Kotlin usa.Correção - a configuração
kotlinOptions.jvmTarget to JavaVersion.VERSION_1_8
no módulo de aplicativo Gradle resolveria o problema.fonte
Todas as respostas aqui estão usando gradle, mas se alguém como eu acabar aqui e precisar de resposta para o maven:
A mudança do arquétipo do jetbrains para o kotlin-jvm é a
<configuration></configuration>
especificação do jvmTarget. No meu caso 11fonte
Nada funcionou para mim até que eu atualizei minha dependência do plugin kotlin.
Tente o seguinte:
1. Invalide o cahce e reinicie.
2. Sincronize o projeto (pelo menos tente)
3. Vá em Arquivo -> Estrutura do projeto -> Sugestões
4. Se houver uma atualização referente ao Kotlin, atualize-a.
Espero que ajude alguém.
fonte
Se estiver usando o Visual Studio Code ** com extensão Kotlin, vá para o gerenciamento de plug-ins Crtl + Shift + x, digite kotlin e clique em gerenciar (a pequena engrenagem) >> Definir configurações de extensão
no Kotlin >> Compilador >> Jvm: Target - digite a versão java. Na minha situação, digitei 1,8
E então reinicie :-)
** vscode ou apenas 'code' para linux
fonte
No meu caso, Arquivo> Configuração> Compilador Kotlin> Versão da JVM de destino> 1.8
fonte
Estou usando o Kotlin e Gradle para o desenvolvimento normal da JVM, (não o Android) e isso funcionou para mim em
build.gradle
:fonte
Se você usa o Eclipse, assumindo que baixou o plug-in Kotlin:
Clique com o botão direito do mouse em Projeto -> Propriedades -> Compilador Kotlin -> Ativar configurações específicas do projeto -> Versão de destino da JVM "1.8"
fonte
Para versões recentes do Android Studio, se a alteração apenas da versão da Kotlin Target VM não funcionasse.
Arquivo Structure Estrutura do projeto ➞ Módulos (
app
): defina "Compatibilidade de origem" e "Compatibilidade de destino" para "1,8 (Java 8)". Pressione "OK" e sincronize o projeto com o Gradle.fonte
se você estiver no projeto android
no build.gradle do seu aplicativo no Android {}
fonte
Usando o DSL Kotlin Gradle, isso resolveu o problema para mim. Eu adicionei isso ao build.gradle.kts. Isso é uma adição à resposta de Joel
fonte
Outra dica para usuários do Eclipse. Após verificar novamente as configurações de destino da jvm apontadas por outros usuários, eu ainda tinha o mesmo problema, causado pela falta da Kotlin Runtime Library. Por exemplo, ao criar um projeto com spring initializr, ele não é adicionado automaticamente. Para adicioná-lo:
right click on your project -> Build path -> Add libraries... -> User Library
e simplesmente adicioneorg.jetbrains.kotlin.core.KOTLIN_CONTAINER
Atualize seu projeto de graduação posteriormente (
right click -> Gradle -> Refresh gradle project
)fonte
Se você estiver enfrentando esta mensagem em um projeto Spring Boot / Kotlin, defina a propriedade "kotlin.compiler.jvmTarget" como "1.8" no seu pom.xml.
fonte
No meu caso, jvmTarget já estava definido no
build.gradle
arquivo como abaixo.Mas meu problema ainda estava lá. Por fim, ele é resolvido após a alteração da versão da JVM de destino de 1.6 para 1.8 em Preferências> Outras configurações> Compilador Kotlin> versão da JVM de destino. veja a imagem em anexo,
fonte