Erro de Kotlin: não foi possível encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7

101

Instalei o plug-in Kotlin em meu aplicativo (v. V1.1.1-release-Studio2.2-1) e selecionei "Configurar Kotlin no projeto" Selecionei o compilador e a versão de runtime 1.0.7. Kotlin atualizou meus arquivos Gradle. Agora, quando tento construir, recebo:

Erro: Ocorreu um problema ao configurar o projeto ': app'. Não foi possível resolver todas as dependências da configuração ': app: _debugApkCopy'. Não foi possível encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Solicitado por:

MyApplication: app: não especificado

Não tenho certeza do que estou perdendo aqui.

Mike6679
fonte
2
Publique seu nível de projetogradle
Patel Pinkal
É assim que você adiciona suporte Kotlin para Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Respostas:

160

substituir

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

com

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

Como a versão com jre é absoluta, basta substituir e sincronizar o projeto

Documentação oficial aqui Obrigado pelo link @ ROMANARMY

Happy Coding :)

Leoelstin
fonte
1
Algumas informações úteis nos documentos sobre jdk e jre.
R0MANARMY
Eu acredito que um dia a equipe do Android tornará as coisas um pouco mais fáceis, não apenas um pouco ou pelo menos eles escreverão grandes mudanças no changelog com negrito em vez de enterrá-lo profundamente no site para ser explorado :))
Farid
12
Levei um minuto inteiro olhando para ver a diferença entre jree jdk- devo estar envelhecendo.
James Wang
32

Em nível de projeto, build.gradleuse apenas esta versão

ext.kotlin_version = '1.3.31'

Remover outras versões

Isso só funcionará com a versão mais recente do Android Studio 3.4

ATUALIZAÇÃO: tente usar a versão mais recente do kotlin com o mais recente Android Studio para evitar um erro.

Patel Pinkal
fonte
22
Uma resposta que especifica uma versão mágica para usar, sem explicação, não é muito útil e se torna ainda menos útil com o tempo. Você está sugerindo atualizar de uma versão anterior? Ou fazer o downgrade de uma versão superior porque a versão superior tem um bug?
Don Hatch
3
@DonHatch esta resposta foi dada em março para o Android Studio 2.2, que estava recebendo a menção de erro acima na pergunta. Não é para Android Studio 3.0 ou superior.
Patel Pinkal
@ 0xalihn a resposta abaixo tem uma solução correta sem o número da versão mágica
Lou Morda
@PatelPinkal você pode atualizar sua resposta para a versão mais recente do Android Studio.
Arbaz.in
1
Eu atualizei a resposta de acordo com a versão mais recente do Android Studio
Arbaz.in
21

A divisão kotlin-stdlibem kotlin-stdlib-jre7e kotlin-stdlib-jre8só foi introduzida com Kotlin 1.1, é por isso que a dependência não pode ser resolvida, a versão do pacote simplesmente não existe.

Parece que a atualização dos arquivos do seu projeto falhou em algum ponto e defina a versão Kotlin para 1.0.7. Se este é um novo projeto e não há nada impedindo você de usar 1.1.1, eu mudaria para ele. Seu problema deve desaparecer depois de fazer isso.

skalarproduktraum
fonte
3
Obrigado por explicar. Várias respostas dizem usar 1.1.1 sem explicação, o que tornará as respostas rapidamente inúteis no futuro.
Don Hatch
12

No arquivo "build.gradle", altere a versão atual do Kotlin dessa linha e pressione synk:

ext.kotlin_version = '1.1.1'

/// Isso será parecido com:

// Arquivo de construção de nível superior onde você pode adicionar opções de configuração comuns a todos os subprojetos / módulos.

buildscript {
    ext.kotlin_version = '1.1.1'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
Mihail Salari
fonte
8

A partir do Kotlin 1.1.2, as dependências com grupo org.jetbrains.kotlinsão, por padrão, resolvidas com a versão obtida do plug-in aplicado. Você pode fornecer a versão manualmente usando a notação de dependência completa como:

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

Se o seu objetivo é JDK 7 ou JDK 8, você pode usar versões estendidas da biblioteca padrão Kotlin que contêm funções de extensão adicionais para APIs adicionadas em novas versões de JDK. Em vez de kotlin-stdlib, use uma das seguintes dependências:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
0xAliHn
fonte
7

Uma nova solução se você usa o Android Studio 3.2, resolvi esse problema adicionando mavenCentral () ao build.gradle do projeto:

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }
}

allprojects {
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
}

Você deve adicionar a linha como este pedido, o creditado é para esta resposta

Mohamed ElSawaf
fonte
4
buildscript {
    **ext.kotlin_version = '1.1.1'**  //Add this line
    repositories {
        **jcenter()**                 //Add this line
        google()
    }
    dependencies {
//        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        **jcenter()**                 //Add this line
        google()
        maven { url "https://jitpack.io" }
    }
}
chirag khandla
fonte
Você poderia explicar como isso melhora a resposta de Mihail Salari, na qual parece se basear.
Nemo
3

Se você estiver usando o Android Studio 3.2 e superior, o problema será resolvido adicionando google () & jcenter () ao build.gradle do projeto:

repositories {
        google()
        jcenter()
}
vikas
fonte
2

Isso é o que funcionou para mim: Usando o Gradle 4.8.1

buildscript {
    ext.kotlin_version = '1.1.1' 
repositories {
    jcenter()
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.0'}
}
allprojects {
    repositories {
        mavenLocal()
        jcenter()
        google()
        maven {
            url "$rootDir/../node_modules/react-native/android"
        }
    maven {
            url 'https://dl.bintray.com/kotlin/kotlin-dev/'
    }
  }
}   
Olusola Omosola
fonte
2

Resolvi este problema desmarcando a opção Trabalho offline emSettings

insira a descrição da imagem aqui

andreikashin
fonte
1
  1. Verifique a versão atual do seu Kotlin no caminho abaixo,

    C: \ Arquivos de programas \ Android \ Android Studio \ gradle \ m2repository \ org \ jetbrains \ kotlin \ kotlin-stdlib \ 1.0.5

mude para essa versão (1.0.5)no arquivo gradle do nível do projeto.

Você pode ver em seu caminho acima não menciona nenhum Java - jre version, então remova em seu arquivo gradle de nível de aplicativo conforme abaixo,

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
user8056898
fonte
1

build.gradle (Projeto)

buildScript {
    ...
    dependencies {
        ...
        classpath 'com.android.tools.build:gradle:4.0.0-rc01'
    }
} 

gradle / wrapper / gradle-wrapper.properties

...
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

Algumas bibliotecas requerem o gradle atualizado . Tal como:

androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines"

GL

Braian Coronel
fonte
0

Caso uma dependência (transitiva) ainda use a jrevariante da biblioteca Kotlin, você pode forçar o uso da jdkvariante com a ajuda de uma estratégia de resolução:

configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            details.requested.with {
                if (group == "org.jetbrains.kotlin" && name.startsWith("kotlin-stdlib-jre")) {
                    details.useTarget(group: group, name: name.replace("jre", "jdk"), version: version)
                    details.because("Force use of 'kotlin-stdlib-jdk' in favor of deprecated 'kotlin-stdlib-jre'.")
                }
            }
        }
    }
}
Brian
fonte
0

Passos simples:

  1. Clique em Arquivo> Estrutura do Projeto

  2. Clique em Dependências> Localizar e clique em org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (ou qualquer que seja sua versão atual)

  3. Em Detalhes> seção de atualização, clique em [atualizar variável] [atualizar dependências]

  4. Clique OK

Cumprimentos

Azhar Husain Raeisi
fonte
0

Depois de corrigir a versão build.gradle, começou a funcionar 4.0.0 a 3.5.0

Kevin Kulothungan
fonte