【问题标题】:Android Studio Gradle DSL method not found: 'android()' -- Error(17,0)未找到 Android Studio Gradle DSL 方法:'android()' -- 错误 (17,0)
【发布时间】:2015-02-28 09:36:42
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • 我猜你刚刚开始这个项目。为什么不 File -> New Project 让它为你设置 Gradle。另外,将你的 gradle 插件升级到 1.0。
  • 这是一个来自网上的项目,我导入了它
  • 请看我的回答。您只需要升级项目。

标签: android android-gradle-plugin dsl


【解决方案1】:

我继续从您提供的链接下载项目: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。 app文件夹中有一个顶级build.gradle和另一个。
  • @Sauron 一切都适合你吗?您需要使用我更新的 build.gradles 才能运行。另外,如果您需要更多帮助,请告诉我!
  • @JaredBurrows 你也可以帮助stackoverflow.com/questions/30958596/… 吗?这是一个与此类似的问题。我在升级 Gradle 时遇到了困难。
  • 只是想添加一条评论,这也适用于任何尝试设置 Parse.com Android QuickStart 空白新项目的人,如果您下载并安装它会遇到同样的问题 :)
【解决方案2】:

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

android {
   compileSdkVersion 19
   buildToolsVersion "19.1" 
}

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

【讨论】:

  • Wonderful Android Studio 2.2 Preview 随机将其放入顶层 build.gradle
【解决方案3】:

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

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

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'
}

【讨论】:

  • 在 2016 年仍然是一个问题 - 仍然通过注释掉该部分来解决。
  • 此代码由 AS 生成。删除解决了问题。谢谢!
【解决方案4】:

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

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

看看

 compileSdkVersion 22
 buildToolsVersion "22.0.0"

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

【讨论】:

  • 我迁移到 Android 5.0,所以这不再是问题,
【解决方案5】:

我在尝试将 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() '“ 错误。

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

【讨论】:

  • 谢谢!它适用于一个干净的 cocos2d android 项目
【解决方案6】:

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

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

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

【讨论】:

    【解决方案7】:

    其实我试过很多组合都没有效果

    但是当我修改我的应用程序 gradle 文件时

     buildTypes {
            release {
                minifyEnabled false
            }
        }
    

    通过删除线

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

    正常工作 :)) 干杯

    【讨论】:

      【解决方案8】:

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

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

      那你必须去 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,一切都会好起来的!

      【讨论】:

      • 恕我直言,旅行者较早的回答建议创建一个新项目以找出要使用的设置,a) 更容易做,b) 将继续工作,在未来的 Android 版本中,当“要使用的最佳”设置可能已更改。
      【解决方案9】:

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

      android {
      compileSdkVersion 19
      buildToolsVersion '19.1' }
      

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

      【讨论】:

        【解决方案10】:

        更改为根 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
        }
        

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

            我也遇到这个问题,直接删掉下面的代码:

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

            成功了。

            【讨论】:

            • 与之前的几个答案重复。似乎在这里希望获得不劳而获的赞成票。应该删除。
            【解决方案13】:

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

            机器人{ compileSdkVersion 19 构建工具版本“19.1” }

            然后再试一次。

            我希望它有效。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-30
              • 2019-09-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多