79

我一直在尝试将项目导入 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 同步消息是:

Error:(24, 0) Gradle DSL method not found: 'android()' 可能的原因:

  • 项目“PoojaPeople”可能正在使用不包含该方法的 Gradle 版本。摇篮设置
  • 构建文件可能缺少 Gradle 插件。应用 Gradle 插件
  • 我不太确定这种方法android()的确切位置。如果它是位于应用程序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'
    
    4

    4 回答 4

    181

    您使用了错误的 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'
    
    于 2016-05-16T10:48:42.170 回答
    6

    我的问题在我的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"
    
    于 2018-10-27T15:49:23.113 回答
    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 ‘:xxx’ of 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包,然后按照这种方式将其导入您的主项目。无论如何,我希望这是一个很好的建议,如果你和我有同样的情况,可以解决你的问题。

    于 2017-04-20T06:26:06.870 回答
    0

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

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

    这对我有用!

    于 2020-05-05T10:13:12.470 回答