找不到方法android()作为参数


71

我一直在尝试将项目导入Android Studio,这就是我遇到的问题,Stack Overflow也有类似的问题,但是它没有为我的特定错误提供解决方案。

这是我的错误日志:

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

Gradle同步消息是:

错误:(24,0)未找到Gradle DSL方法:“ android()”可能的原因:

  • 项目“ PoojaPeople”可能正在使用不包含该方法的Gradle版本。摇篮设置
  • 生成文件可能缺少Gradle插件。应用Gradle插件
  • 我不太确定此方法的确切android()位置。如果它是位于Application的build.gradle文件中的文件,我仍然不完全知道从这里开始。任何帮助表示赞赏。

    我的build.gradle

    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'
    

    1
    您的build.gradle在哪里?发布
    MD

    这回答了你的问题了吗?找不到参数Gradle的方法compile()
    longi,

    试试看classpath“ com.android.tools.build:gradle:4.0.1”
    柠檬先生

    Answers:


    167

    您使用了错误的 build.gradle文件。

    在顶层文件,你不能定义一个android块。

    只需将这部分移动到module/build.gradle文件中即可。

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

    11
    我遇到了同样的问题,您的回答为我解决了这个问题。我已经在新计算机上安装了新版本的Android Studio,并尝试从该存储库中安装示例:github.com/googlesamples/android-vision我不确定为什么,但是在导入过程中有时会遇到Android Studio本身在顶级build.gradle文件中添加了android()块,该文件不在原始源文件中。
    卡拉

    1
    我有一个旧的Eclipse项目,该项目自动导入到AS 2.2.2中。它报告了相同的错误,但报告在app文件夹内的build.graddle文件中,Gabriele建议在其中移动android {}部分。所以,这是另外一回事。
    halxinate

    10
    我真的希望Studio中有更多有意义的信息。我讨厌Eclipse已经停止;摄影棚真是令人难受。实际编译代码要比实际编写花费更多时间。多十倍的时间!
    Sreedevi J

    1
    与我相同,在我使用“项目结构/模块/属性”表单更改项目设置后,Android Studio添加了此块。
    agodinhost

    Android Studio / Gradle产生的大多数错误消息都是这样的;难以理解和误导。对不起,但它是一个笑声。
    卡尔

    3

    我的问题在我的app.gradle内部。我搬家时遇到了这个问题

    apply plugin: "com.android.application"
    

    从顶行到下面一行

    apply from:
    

    我将插件切换回顶部,

    我的确切错误

    Could not find method android() for arguments [dotenv_wke4apph61tdae6bfodqe7sj$_run_closure1@5d9d91a5] on project ':app' of type org.gradle.api.Project.
    

    我的app.gradle的顶部现在看起来像这样

    project.ext.envConfigFiles = [
            debug: ".env",
            release: ".env",
            anothercustombuild: ".env",
    ]
    
    
    apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
    apply plugin: "com.android.application"
    

    2

    伙计们 在尝试将.aar软件包导入到项目中之前,我遇到了同样的问题,不幸的是,在将.aar软件包作为项目的模块依赖项之前,我有两个模块(一个关于ROS-ANDROID-CV- BRIDGE,其中一个已经是OPENCV-FOR-ANDROID。所以,当你们见面时,我得到了这个错误:

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

    因此,当项目中有多个模块时,麻烦的gradle结构导致了此问题,更糟糕的是,它们以不同的方式导入或具有不同的类型(.jar / .aar包或仅是Java库的一个项目)。使每个子项目中的配置(如编译版本,库依赖项等)与主项目兼容,确实是一件令人头疼的事情。

    我按照以下步骤解决了我的问题:

    ①将.aar软件包复制到app / libs中。

    ②将其添加到app / build.gradle文件中:

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

    ③将其添加到要应用.aar依赖关系的模块的add build.gradle文件中(在我的情况下,只需将其添加到我的app / build.gradle文件中):

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

    因此,如果可能,只需尝试将模块依赖项导出为.aar包,然后按照这种方式将其导入到主项目中。无论如何,我希望这会是一个好的建议,并且如果您和我有同样的情况,也可以解决您的问题。


    0

    出现此错误是因为编译器在您的项目中找不到“ my-upload-key.keystore”文件

    生成文件后,需要将其粘贴到项目的andorid / app文件夹中

    这对我有用!

    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.