104 votes

Impossible de trouver la méthode android () pour les arguments

J'ai essayé d'importer un projet pour Android Studio et c'est là que je suis bloqué, il y a une question similaire sur un Débordement de Pile , mais il n'a pas d'apporter une solution à mon erreur.

Ceci est mon journal des erreurs:

C:\<some location>\build.gradle

Error:(24, 1) A problem occurred evaluating root project '<project name>'.
> Could not find method android() for arguments [build_4fli1jm76ubcnxesnhqnhie47$_run_closure3@6e71db85] on root project '<project name>'.
Information:BUILD FAILED

Le Gradle les messages de synchronisation sont:

Erreur:(24, 0) Gradle DSL méthode ne trouve pas: 'android()' Possible causes:

Le projet "PoojaPeople" peut-être une version de Gradle qui ne contient pas la méthode. Gradle paramètres Le fichier build peut-être manquant un plugin Gradle. Appliquer Plugin Gradle

Je ne sais pas trop où exactement cette méthode android() est situé. Si c'est celui qui se trouve en Application de l' build.gradle le fichier, je n'ai toujours pas savoir exactement où aller à partir d'ici. Toute aide est appréciée.

Mon build.gradle est

buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
    }
     dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()

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

android {
    compileSdkVersion 17
    buildToolsVersion '23.0.0'
}
dependencies {
    compile files('app/libs/junit-4.12-JavaDoc.jar')
}
apply plugin: 'maven'

212voto

Gabriele Mariotti Points 7243

Vous utilisez le mauvais fichier build.gradle .

Dans votre fichier de niveau supérieur, vous ne pouvez pas définir un bloc android .

Il suffit de déplacer cette partie dans le fichier module/build.gradle .

 android {
    compileSdkVersion 17
    buildToolsVersion '23.0.0'
}
dependencies {
    compile files('app/libs/junit-4.12-JavaDoc.jar')
}
apply plugin: 'maven'
 

3voto

frank jorsn Points 287

les gars. J'ai eu le même problème avant, quand j'essaie d'importer un .aar paquet dans mon projet, et, malheureusement, avant de faire de la .aar paquet module-dépendance de mon projet, j'ai eu deux modules (un sujet de ROS-ANDROID-CV-PONT, l'un est OPENCV-POUR-ANDROID) déjà. Donc, j'ai obtenu cette erreur que vous les gars de répondre:

Error:Could not find method android() for arguments [org.ros.gradle_plugins.RosAndroidPlugin$_apply_closure2_closure4@7e550e0e] on project ‘:xxx' of type org.gradle.api.Project.

Donc, c'est le douloureux gradle-structure de la cause de ce problème lorsque vous avez plusieurs modules dans votre projet, et pire, ils sont importés dans les différentes manière ou d'avoir différents types (.jar/.aar paquets ou tout simplement un projet de bibliothèque Java). Et c'est vraiment un casse-tête de faire la configuration de la compilation de la version, les dépendances de la bibliothèque etc. dans chaque sous-projet compatible avec le projet.

J'ai résolu mon problème, il suffit de suivre ces étapes:

① Copie .aar paquet dans app/libs.

② Ajouter ceci dans app/build.gradle fichier:

repositories {
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

③ Ajouter ceci dans votre ajouter de construire.gradle fichier du module auquel vous souhaitez appliquer l' .raa de la dépendance (dans ma situation, il suffit d'ajouter ceci dans mon app/build.gradle fichier):

dependencies {
    compile(name:'package_name', ext:'aar')
}

Alors, si c'est possible, essayez d'exporter votre module de dépendance de l'un .aar paquet, puis suivez ce chemin importer principale de votre projet. De toute façon, j'espère que cela peut être une bonne idée et permettrait de résoudre votre problème si vous avez la même situation avec moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X