找不到Android Studio Gradle DSL方法:“ android()”-错误(17,0)


82

我试图在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

1
我猜你刚刚开始这个项目。为什么不选择File-> New Project,让它为您设置Gradle。另外,将gradle插件升级到1.0。
Jared Burrows 2015年

这是从在线源的项目,我导入它
索伦


请看我的回答。您只需要升级项目。
Jared Burrows

Answers:


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()
    }
}

app / 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

首先,感谢您的付出!!但是当我下载该项目并导入时,只有一个build.gradle文件。您是怎么得到两个的应用程序和项目?
索伦

我下载了zip文件,并通过命令行浏览了文件。另外,通常有一个顶级build.gradle和一个项目build.gradle。将项目导入Intellij / Android Studio时,选择顶部的build.gradle。在应用程序文件夹中有一个顶级build.gradle和另一个。
Jared Burrows

@Sauron一切对您有用吗?您需要使用我更新的build.gradles才能运行它。另外,如果您需要更多帮助,请告诉我!
Jared Burrows,2015年

@JaredBurrows您还能提供stackoverflow.com/questions/30958596/…吗?这是一个类似的问题。我在升级Gradle方面遇到了困难。
committedandroider

1
只是想添加一条评论,它也适用于任何试图设置Parse.com Android QuickStart空白新项目的人,如果您下载并安装它也会遇到同样的问题:)
Max

46

在顶层,build.gradle您似乎拥有代码

android {
   compileSdkVersion 19
   buildToolsVersion "19.1" 
}

您无法在顶层使用此代码,build.gradle因为android build插件尚未加载。您可以在应用程序级别定义编译版本和构建工具版本build.gradle


3
精彩的Android Studio 2.2预览版将其随机放置在顶级build.gradle中
Kevin

27

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

只需删除该方法,它对我有用。

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
}

3
在2016年仍然是一个问题-并通过注释掉该部分来解决。
BurninLeo

1
该代码是由AS生成的。删除解决了问题。谢谢!
Tom Bevelander,2016年

14

我已尝试通过以下步骤解决此问题:

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

调查

 compileSdkVersion 22
 buildToolsVersion "22.0.0"

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

在此处输入图片说明


我迁移到Android 5.0,所以这不再是一个问题,
Sauron

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


谢谢!它在一个干净的cocos2d android项目上工作
Jacek Pietal,2016年

1

校正gradle设置非常困难。如果您对Gradle不太了解,则需要大量学习。相反,您可以执行以下操作:

1)在新文件夹中启动一个新项目。选择与您的项目有相同问题的设置,但要保持简单:选择一个空的主要活动。2)删除... \ NewProjectName \ app \ src \ main文件夹中的所有文件3)将... \ ProjectWithGradleProblem \ app \ src \ main文件夹中的所有文件复制到... \ NewProjectName \ app \ src \ main中夹。4)如果您正在使用测试项目(\ 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'

保存所有更改并重新启动AndroidStudio,一切都很好!


IMHO是Traveller较早的建议,建议创建一个新项目以找出要使用的设置,这种方法a)易于实现,b)在将来的Android版本中,当“最佳”设置可能已更改时,它将继续工作。 。
ToolmakerSteve

0

只需从root build.gradle删除这些行

android {
compileSdkVersion 19
buildToolsVersion '19.1' }

现在尝试重新编译。它应该工作。


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'
}

有效。


冗余与先前的几个答案。似乎是在这里,希望得到不受欢迎的投票。应该删除。
ToolmakerSteve

0

当我从Github导入项目时发生此错误。由于项目是较旧的版本,因此会发生这种情况。只需尝试从根目录删除以下这些方法。

android {compileSdkVersion 19 buildToolsVersion“ 19.1”}

然后再试一次。

我希望它能起作用。

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.