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

问题描述 投票:79回答:13

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

我已经跟踪了许多消息来源,只是为了让它运行并在这里结束,但不知道还能做什么。

如何配置此项目以运行?

的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
android android-gradle dsl
13个回答
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

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
}

0
投票

对我有用的是使用“文件 - >新建 - >版本控制项目”导入项目,然后选择您的在线源(例如GitHub)。这样,所有.gradle文件都是在导入中创建的。


0
投票

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

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

有效。


0
投票

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

android {compileSdkVersion 19 buildToolsVersion“19.1”}

然后再试一次。

我希望它有效。


46
投票

在你的顶级build.gradle你似乎有代码

android {
   compileSdkVersion 19
   buildToolsVersion "19.1" 
}

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


27
投票

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

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

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
}

14
投票

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

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

调查

 compileSdkVersion 22
 buildToolsVersion "22.0.0"

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

enter image description here


10
投票

当我尝试将Eclipse NDK项目导入Android Studio时,我遇到了同样的错误。事实证明,对于Android Studio中的NDK支持,您需要使用新的gradle和android插件(并且gradle版本为2.5+)。这个插件需要更改模块的build.gradle文件。具体来说,“android {...}”对象应该在“model {...}”对象里面,如下所示:

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后必须做的更改。


1
投票

纠正gradle设置非常困难。如果您对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安装应该没问题。


1
投票

其实我试过很多组合没什么用

但当我修改我的应用程序gradle文件与以下

 buildTypes {
        release {
            minifyEnabled false
        }
    }

通过删除线

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

它正常工作:))欢呼


1
投票

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

如果您有gradle-2.14,则可以在C:\ Program Files \ Android \ Android Studio \ gradle中进行验证。

然后你必须去C:\ Users \\ 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'

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


0
投票

只需从根build.gradle中删除这些行

android {
compileSdkVersion 19
buildToolsVersion '19.1' }

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

© www.soinside.com 2019 - 2024. All rights reserved.