Essayer de démarrer un nouveau projet Kotlin avec Android Studio 3.0 Canary 1 affiche cette erreur. Trace complète:
Erreur: Impossible de trouver la méthode 'com.Android.build.gradle.internal.variant.BaseVariantData.getOutputs () Ljava/util/List;' . Les causes possibles de cette erreur inattendue sont les suivantes:
Dans le cas de processus Gradle corrompus, vous pouvez essayez également de fermer le IDE, puis de tuer tous les processus Java.
- Gradle's le cache de dépendance peut être corrompu (cela se produit parfois après un délai de connexion du réseau ). Des dépendances de re-téléchargement et synchroniser le projet (réseau requis)
- L'état d'un Gradle Le processus de construction (démon) est peut-être corrompu. En arrêtant tous les démons Gradle, vous pouvez résoudre ce problème. Arrêtez Gradle build processus (nécessite un redémarrage)
- Votre projet utilise peut-être un plug-in tiers incompatible avec les autres plug-ins de le projet ou la version de Gradle demandée par le projet.
J'ai essayé les deux premières options et les plugins tiers sont laissés par défaut.
gradle-wrapper.properties
#Thu May 18 08:36:52 BST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.Zip
build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.1.2-3'
repositories {
maven { url 'https://maven.google.com' }
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.0-alpha1'
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
}
}
allprojects {
repositories {
jcenter()
maven { url 'https://maven.google.com' }
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Je n'ai touché à aucune de ces valeurs moi-même, elles sont laissées par défaut. La création d'un nouveau projet non-Kotlin n'a pas ce problème.
Dans mon build.gradle changer
ext.kotlin_version = '1.1.2-3'
à
ext.kotlin_version = '1.1.2-4'
corrigé cela.
Vous pouvez trouver la version la plus récente ici .
Pour Java
Il suffit de retirer
classpath 'me.tatarka:gradle-retrolambda:3.7.0'
rétrograder butterknife
version à 8.4.0
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
N'oubliez pas d'enlever
apply plugin: 'me.tatarka.retrolambda'
à partir du niveau de construction de l'application.
Ça a fonctionné pour moi
Utiliser la version 8.4.0
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
Mettez à jour votre version de kotlin à la dernière:
ext.kotlin_version = '1.1.2-4' //currently it's the latest version
Ensuite, vous risquez de faire face à plusieurs erreurs. Avant de synchroniser à nouveau, assurez-vous que votre buildToolsVersion
est "26.0.2" ou plus.
Il s'agit d'un problème connu dans Android Studio Preview 3.0:
Si vous voyez cette erreur, il est possible que vous disposiez d'une version préexistante du plug-in Kotlin incompatible avec le nouveau plug-in Android pour Gradle disponible dans Android Studio 3.0. La solution consiste à supprimer l'ancien plugin Kotlin.
Ouvrez votre fichier
build.gradle
au niveau du projet et localisezext.kotlin_version
. Il devrait être 1.1.2-4 (ou supérieur). Si une version plus ancienne s’affiche, vous devez supprimer l’ancien plug-in Kotlin pour ne pas gêner la version fournie avec Android Studio 3.0.Sous Windows, il devrait être situé à
C:\Users\user_name\AndroidStudio_version\config\plugins\Kotlin\
Sur Mac, regardez dans
~/Library/Application\ Support/AndroidStudio_version/Kotlin/
Dans mon cas, le problème était dû au fait que nous appliquions butterknife-gradle-plugin . La mise à niveau vers la version 8.8.1 n'a pas résolu le problème, mais sa suppression l'a certainement résolu.
Le build.gradle appartient à l'application, donc je ne sais même pas pourquoi nous utilisons ce plugin (je suis nouveau dans le projet)