Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用新语法应用Android Gradle插件_Android_Gradle_Plugins_Android Gradle Plugin_Build.gradle - Fatal编程技术网

使用新语法应用Android Gradle插件

使用新语法应用Android Gradle插件,android,gradle,plugins,android-gradle-plugin,build.gradle,Android,Gradle,Plugins,Android Gradle Plugin,Build.gradle,如何使用新的Gradle插件语法应用Android插件: plugins { id "..." version "..." } 而不是: buildscript { dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } apply plugin: 'com.android.application' 这应该可以做到 plugins { id "com.android.

如何使用新的Gradle插件语法应用Android插件:

plugins {
    id "..." version "..."
}
而不是:

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

apply plugin: 'com.android.application'
这应该可以做到

plugins {
  id "com.android.application" version "<desired version>"
} 
插件{
id“com.android.application”版本“”
} 
请参阅


该id是您以前“应用”的id。

您应该将其放在应用程序级渐变文件的构建脚本块之后

// 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:2.3.3'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
}
plugins {
   id "me.tatarka.retrolambda" version "3.7.0"
}
allprojects {
  repositories {
     jcenter()
     maven { url "https://maven.google.com" }

    }
}

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

我只是遇到了同样的问题并找到了解决办法。这个问题源于这样一个事实:无论出于何种原因,谷歌决定不将应用程序插件放入Gradle的社区插件库中

build.gradle
中,完全删除buildscript块,只需添加

plugins {
    id 'com.android.application' version '3.4.0'
}
settings.gradle中添加

pluginManagement {
    repositories {
        gradlePluginPortal()
        jcenter()
        google()
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == "com.android.application") {
                useModule("com.android.tools.build:gradle:${requested.version}")
            }
        }
    }
}

错误:(3,0)插件[id:'com.android.application',version:'2.3.0']未在以下任何来源中找到:-Gradle核心插件(插件不在'org.Gradle'命名空间中)-Gradle中央插件库(没有'com.android.application'插件可用-请参阅https://plugins.gradle.org 对于可用的插件)
Yep。不起作用。我得到
错误:(10,0)插件'com.android.application'已经在脚本类路径上。脚本类路径上的插件不能应用于Plugins{}块。在脚本正文中添加“apply plugin:'com.android.application'”,以使用插件。
这是不正确的。插件ID不一定与您使用的
apply plugin
相同。另外,正如其他人所评论的,AFAIK的Android gradle插件还不能与“新”的gradle插件DSL一起应用。这并不是在回答这个问题。这在最新版本上有效吗?我遇到了这个错误:
无法加载类'com.android.build.gradle.BaseExtension'。
一切正常,但最好使用每个命名空间检查:
requested.id.namespace==“com.android”
android gradle插件4.2将正确支持插件块。在此之前,请使用下面的插件管理解决方案。资料来源: