未找到Android Studio Gradle DSL方法:' android()' - 错误(17,0)

时间:2015-01-01 23:22:30

标签: android android-gradle dsl

我正在尝试在Android Studio中运行我的项目,但错误如下所示:

enter image description here

我已经关注了很多来源,只是为了让它运行并在这里结束,但不知道还能做什么。

如何配置此项目以运行?

的build.gradle:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.9.+'
        }
    }

    allprojects {
        repositories {
            mavenCentral()
        }
    }

    android {
        compileSdkVersion 19
        buildToolsVersion "19.1" 
    }

settings.gradle:

include ':app'

local.properties:

sdk.dir=C\:\\Users\\KJA\\AppData\\Local\\Android\\sdk

gradle.propertes:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

13 个答案:

答案 0 :(得分:56)

我继续从您提供的链接下载项目:http://javapapers.com/android/android-chat-bubble/

由于这是一个旧教程,你只需要升级软件,gradle,android构建工具和插件。

确保您拥有最新的Gradle和Android Studio:

的build.gradle:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用程序/的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName '1.0'
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.2.1'
}

然后运行gradle:

gradle installDebug

答案 1 :(得分:46)

在您的顶级build.gradle中,您似乎拥有代码

android {
   compileSdkVersion 19
   buildToolsVersion "19.1" 
}

您无法在顶级build.gradle拥有此代码,因为Android构建插件尚未加载。您可以在应用级build.gradle中定义编译版本和构建工具版本。

答案 2 :(得分:27)

由于某些未知原因,Android Studio错误地添加了android() 顶级build.gradle文件中的方法。

只需删除该方法,它就适用于我。

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
}

答案 3 :(得分:14)

我尝试通过以下步骤管理此问题:

删除顶级根gradle文件中的android { ... }

查看

 compileSdkVersion 22
 buildToolsVersion "22.0.0"
在app / gradle文件中的

行代码只有下面的下拉列表中的一个版本应该存在,否则它将为下载提供相同的选项。

enter image description here

答案 4 :(得分:10)

当我尝试将Eclipse NDK项目导入Android Studio时,我遇到了同样的错误。事实证明,对于Android Studio中的NDK支持,您需要使用新的gradle和android插件(并且gradle版本为2.5+)。这个插件需要更改模块的build.gradle文件。特别是" android {...}"对象应该在" 模型 {...}"像这样的对象:

apply plugin: 'com.android.model.application'
model {
    android {
    ....
    }
}

因此,如果您已更新gradle配置以使用新的gradle插件和新的android插件,但未更改模块的build.gradle语法,则可以获得" Gradle未找到DSL方法:' android()'"错误。

我在这里准备了一个补丁文件,在评论中有一些进一步的解释: https://gist.github.com/shumoapp/91d815de6e01f5921d1f 这些是在将原生音频ndk项目导入Android Studio后我必须做的更改。

答案 5 :(得分:1)

纠正平移设置非常困难。如果您对Gradle了解不多,那么您需要学习很多东西。相反,您可以执行以下操作:

1)在新文件夹中启动新项目。使用gradle问题为项目选择相同的设置,但要保持简单:选择一个空的主要活动。 2)删除... \ NewProjectName \ app \ src \ main文件夹中的所有文件 3)将... \ ProjectWithGradleProblem \ app \ src \ main文件夹中的所有文件复制到... \ NewProjectName \ app \ src \ main文件夹。 4)如果您正在使用Test项目(\ ProjectWithGradleProblem \ app \ src \ AndroidTest),您也可以这样做。

如果您的Gradle安装正常,此方法可以正常工作。如果你刚刚安装了Android studio并且没有修改它,那么Gradle安装应该没问题。

答案 6 :(得分:1)

实际上我试过很多组合没什么用的

但是当我使用以下

修改我的应用程序gradle文件时
 buildTypes {
        release {
            minifyEnabled false
        }
    }

删除行

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

它正常工作:))欢呼

答案 7 :(得分:1)

另一种解决方案,如果你已经安装了android-studio-bundle-143.2915827-windows 和gradle2.14

你可以验证     C:\ Program Files \ Android \ Android Studio \ gradle如果你有gradle-2.14。

然后你必须去     C:\用户\\ AndroidStudioProjects \ android_app \

在这个build.gradle中你输入了这段代码:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}

然后,转到C:\ Users \ Raul \ AndroidStudioProjects \ android_app \ Desnutricion_infantil \ app

在这个build.gradle中你放了:

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '24.0.0'
defaultConfig {
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.3.0'
}

您必须检查您的sdk版本和buildTools。     compileSdkVersion 23     buildToolsVersion' 24.0.0'

保存所有更改并重新启动AndroidStudio,一切都应该没问题!

答案 8 :(得分:0)

只需从根build.gradle

中删除这些行
android {
compileSdkVersion 19
buildToolsVersion '19.1' }

现在尝试再次编译。它应该工作。

答案 9 :(得分:0)

更改为root build.gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'

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

allprojects {
    repositories {
        jcenter()
    }
}

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

答案 10 :(得分:0)

对我有用的是用"文件 - >导入项目。新 - >来自Version Control"的项目然后选择你的在线资源(例如GitHub)。这样,所有.gradle文件都是在导入中创建的。

答案 11 :(得分:0)

我也遇到了这些问题,只删了底码:

DELETE THESE LINES:
android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'
}

它有效。

答案 12 :(得分:0)

当我从Github导入项目时发生此错误。这是因为该项目是旧版本。只需尝试从根gradle中删除以下这些方法。

android {         compileSdkVersion 19         buildToolsVersion“19.1”     }

然后再试一次。

我希望它有效。