web-dev-qa-db-fra.com

Erreur: impossible de trouver org.jetbrains.kotlin: kotlin-stdlib-jdk8: 1.3.60-eap-25 in Ionic 3

Je reçois soudainement l'erreur suivante lors de la construction de l'application Ionic 3 pour Android.

Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25

Nous avons une solution de Android Studio ici mais après avoir changé mon build.gradle avec le code suivant, je reçois toujours l'erreur.

buildscript {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

allprojects {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

Mon fichier build.gradle ressemble à ceci après avoir mis à jour mon Cordova et ajouté la solution ci-dessus.

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

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

        classpath 'com.Android.tools.build:gradle:3.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    //This replaces project.properties w.r.t. build settings
    project.ext {
      defaultBuildToolsVersion="28.0.3" //String
      defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
      defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Toujours la même erreur.

81
Tapas Mukherjee

Le problème réside dans le cordova-support-google-services plugin pour Cordova.

Ce plugin build.gradle ressemble à ceci à partir d'aujourd'hui (24 octobre 2019):

dependencies {
    classpath 'com.Android.tools.build:gradle:+'
    classpath 'com.google.gms:google-services:4.2.0'
}

Plus précisément, le problème réside dans cette dépendance:

classpath 'com.Android.tools.build:gradle:+'

C'est une façon extrêmement fragile de spécifier les dépendances. Le signe "+" signifie ici "récupérer la version la plus récente disponible dans le dépôt". Si une version plus récente est publiée dans le référentiel et qu'elle casse la version, alors tout le monde avec ce plugin a ses projets cassés. C'est arrivé aujourd'hui. La version cassée qui est récupérée est com.Android.tools.build:gradle:4.0.0. Cela nécessite des trucs de Kotlin.

C'est pourquoi vous devez TOUJOURS geler les dépendances pour construire votre projet de manière fiable. Ne faites jamais confiance aux nouveautés. Cette dépendance se compile très bien comme hier:

classpath 'com.Android.tools.build:gradle:3.5.1'

Pour ceux qui utilisent Cordova ou Ionic, vous pouvez apporter une solution rapide pour pouvoir créer le projet en gelant la dépendance dans le fichier:

<projectroot>/platforms/Android/cordova-support-google-services/<project>-build.gradle

Ce n'est cependant pas une solution définitive. Si vous réinstallez la plate-forme Android via Cordova, l'erreur réapparaîtra. Le responsable du projet doit soit geler la dépendance, soit la corriger pour prendre en charge le grade 4.0.0. En attendant, utilisez simplement une fourchette fixe de ce plugin.

75
Mister Smith

EDIT 28/10/19:

cordova-support-google-services a été mis à jour aujourd'hui vers la version 1.3.2 qui change le chemin de classe de classpath 'com.Android.tools.build:gradle:+'

à

classpath 'com.Android.tools.build:gradle:3.+'

qui semble corriger l'erreur kotlin

Réponse originale

J'ai réussi à construire le mien en procédant comme suit:

J'ai édité les plateformes-> Android-> cordova-support-google-services-> myAppName-build.gradle

et changé

maventCentral()

à

    maven { url "https://maven.google.com" }
    maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }

Cela a résolu l'erreur kotlin, puis j'obtenais une erreur différente que j'ai résolue en changeant

classpath 'com.google.gms:google-services:4.2.0'

à

classpath 'com.google.gms:google-services:4.1.0'

Il s'est ensuite construit avec succès.

30
DanielRead

Voici la solution.

Le problème était exactement le référentiel maven ( ici ), mais le problème était avec le build.gradle du cordova-support-google-services plugin, j'ai donc ajouté la ligne requise et tout va bien maintenant, j'ai déjà créé une requête pull vers le référentiel d'origine ( ici ). Mais en attendant, vous pouvez faire ce que j'ai fait, il suffit de remplacer dans package.json la version actuelle avec mon dépôt:

Avant:

...
"cordova-support-google-services": "^1.3.1",
...

Après:

...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...

après cela, vous devrez:

  • Supprimez les dossiers les plates-formes et les plugins
  • courir npm install

Il s'agit d'une solution temporelle tandis que la demande de pull vers le référentiel principal est acceptée et le package npm mis à jour

et c'est tout, maintenant vous pouvez reconstruire votre projet.


J'utilise Ionic 4, et certains plugins nécessitent cordova-support-google-services, au cas où vous ne l'auriez pas dans votre package.json, l'erreur pourrait être avec un autre plugin, si c'est le cas, veuillez ajouter le package.json afin que nous puissions déterminer lequel est le problème.


MISE À JOUR 24/OCT:

J'ai changé la solution dans mon référentiel comme beaucoup d'entre vous l'ont suggéré, maintenant la solution consiste simplement à corriger la dépendance: from: com.Android.tools.build:gradle:+ vers classpath com.Android.tools.build:gradle:3.+, c'est déjà dans mon référentiel si vous voulez voir ce qui a changé

29
Luis Gonzalez

dans mon projet je fixe comme ça. (mon projet en kotlin)

buildscript{

    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

}

allprojects {
    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
   }
}
7
Ven Ren

Solution pour ionic v3 et cordova

La solution @Mister Smith a résolu mon problème

il faut aller au dossier

platforms/Android/cordova-support-google-services

puis

Remplacer

classpath 'com.Android.tools.build:gradle:+'

par

classpath 'com.Android.tools.build:gradle:3.5.1'

@La solution alternative que j'ai trouvée consiste à

setup kotlin in your system :)
6
Sayed Mohd Ali

Comme autre correctif temporaire pour suivre le suggestion de @MisterSmith, utilisez un crochet pour ré-appliquer le verrou:

<hook src="scripts/fix_Android_dep.sh" type="after_platform_add"/>

avec ce code bash trop verbeux:

#!/usr/bin/env bash

## temporary fix for Android studio EAP issue
## SOURCE: https://stackoverflow.com/a/58536638/56545
if [ -d "platforms/Android/cordova-support-google-services" ]; then
  file="platforms/Android/cordova-support-google-services/app-build.gradle"
  from="classpath 'com.Android.tools.build:gradle:+'"
  to="classpath 'com.Android.tools.build:gradle:3.5.1'"

  change=`sed "s/$from/$to/" < "$file"`
  echo "$change" > "$file"
fi
5
Greg Haygood

Je devais ajouter maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' } à la fois dans le niveau supérieur build.gradle et dans le module appbuild.gradle. Dans les deux cas, à la fois dans le buildscripts.repositories et en allprojects.repositories

2

Rien de ce qui précède n'a fonctionné pour moi. J'ai fini par supprimer le plugin google-services et l'ajouter.

cordova plugin rm cordova-support-google-services cordova plugin add cordova-support-google-services

2
Man Called Haney