仍在收到警告:配置'编译'已经过时,已被“实施”所取代。

时间:2018-02-09 16:12:18

标签: android gradle build

我已在项目compile中将implementation的{​​{1}}替换为build.gradle,但我仍然收到此警告:

enter image description here

我试图寻找"编译"在整个项目中,但未找到匹配项。那可能是什么原因?

23 个答案:

答案 0 :(得分:461)

我已将com.google.gms:google-services3.1.1更新为3.2.0,警告已停止显示。

buildscript {

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

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

    classpath 'com.google.gms:google-services:3.2.0'
    }
}

答案 1 :(得分:119)

我对com.google.gms:google-services有同样的警告。

解决方案是将classpath com.google.gms:google-services升级到classpath'com.google.gms:google-services:3.2.0'在build.gradle文件中的项目:

enter image description here

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

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

在Android Studio版本3.1依赖项中,complie word被替换为 实施

android studio 3.1中

依赖于警告

dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.android.support:appcompat-v7:27.1.0'
            compile 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }
android studio 3.1中的

依赖关系确定

    dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.android.support:appcompat-v7:27.1.0'
            implementation 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    }

通过Android Studio 3.1为新项目生成Gradel。

Gradel generate by Android Studio 3.1 for new project.

访问https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html

详细信息https://docs.gradle.org/current/userguide/declaring_dependencies.html

答案 2 :(得分:29)

我已将com.google.gms:google-services从3.2.0更新为3.2.1,警告已停止显示。

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}

答案 3 :(得分:21)

使用当前最新版本的google gms服务为我解决了这个问题。

在项目级别build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}

答案 4 :(得分:16)

打开位于此处的build.gradle文件:

enter image description here

这是编写依赖库的旧方法(对于gradle版本2及以下版本):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.android.support:support-v4:21.+'
}

这是导入gradle版本3的依赖项的新(右)方法:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation files('libs/volley.jar')
    implementation 'com.android.support:support-v4:21.+'
}

答案 5 :(得分:12)

谷歌回复:https://issuetracker.google.com/issues/74048134

仍然会有一些使用compile的依赖项,请仔细检查应用程序依赖项和传递依赖项。

答案 6 :(得分:7)

https://issuetracker.google.com/issues/72479188表示插件有时可以引入"编译"依赖关系以及触发警告的因素。可能只是最简单地解决这个问题并等到他们修复它以指出哪些插件导致问题。

答案 7 :(得分:6)

无需删除该行。正如Jkrevis所写,将com.google.gms:google-services更新为3.2.0并停止警告。

答案 8 :(得分:4)

在我的情况下,它是由Realm库引起的,在我将它更新到Realm的最新版本(5.1.0)后,问题解决了!

这是工作的gradle脚本:

buildscript {
repositories {
    jcenter()
    google()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath "io.realm:realm-gradle-plugin:5.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:3.2.1'
  }
}

答案 9 :(得分:4)

我在不使用com.google.gms:google-services的情况下遇到了此问题。 解决此类问题的解决方案如下:

  1. 检查所有项目和模块的build.gradle文件。或者只是全局搜索关键字“编译”以查找导致此警告的原因。
  2. 如果上述方法不能解决此警告,请使用CLI命令, ./gradlew assembleDebug -d > gradle.log
    将详细的调试信息打印到名为gradle.log或其他文件的文件中,因为该信息太多。然后搜索单词“ WARNING”以找到gradle.log中的位置,通常可以找到引起该警告的依赖项或插件。

答案 10 :(得分:3)

仅更新google-service版本对我不起作用。

  • 首先请确保将您所有的依赖项compile替换为implementation
  • 更新项目中的所有依赖项。因为如果您的依赖项中有一个compile,那么您的项目将显示此错误。因此,更新所有依赖项版本。

答案 11 :(得分:2)

在项目级别转到build.gradle文件,您会发现以下几行突出显示

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'  //place your cursor over here 
    //and hit alt+enter and it will show you the appropriate version to select


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

    classpath 'com.google.gms:google-services:4.0.2' //the same as previously
}

答案 12 :(得分:2)

在我的情况下,这是一个旧的依赖项,正在将compile用于传递性依赖项:com.jakewharton.hugo

从我的gradle中将其删除后,将其编译。

答案 13 :(得分:1)

解决此问题的解决方法是我使用旧版本的Gradle,可以找到here

我使用的是gradle-3.0-rc-1-src版本,但其他版本也可以使用,但可能不会比3.0版本更新。

首先将zip文件解压缩到任何你喜欢的地方。

然后转到文件 - >设置 - >构建,执行,部署 - > Gradle并将设置更改为Use local gradle distribution。之后,请确保Gradle Home-field指向您刚刚解压缩到的目录中的.gradle目录。

重建项目,一切都应该没问题。

答案 14 :(得分:0)

我尝试将 google gms服务更改为Android Studio 3.0.1中的最新com.google.gms:google-services:3.2.1,但警告仍然存在。

根据编译器的建议,我将所有compile依赖项更改为implementation,将testCompile更改为testImplementation,这样就可以了。

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-ads:12.0.1'
implementation 'com.google.firebase:firebase-crash:12.0.1'
implementation 'com.google.firebase:firebase-core:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.firebase:firebase-perf:12.0.1'
implementation 'com.google.firebase:firebase-appindexing:12.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

最后警告被删除了!

答案 15 :(得分:0)

您可以执行以下两个选择:

  1. 在您的项目中添加类路径“ com.google.gms:google-services:3.2.0”:build.gradle依赖项 和
  2. 替换您的模块:build.gradle依赖于实现与实现 而且您不会收到任何警告消息。

答案 16 :(得分:0)

只需从build.gradle的{​​{1}}添加

build script

,所有依赖项classpath 'com.google.gms:google-services:3.2.0' 替换为"compile"

这是我的工作。

答案 17 :(得分:0)

当前版本为 4.2.0

buildscript {

$dir = 'data'; 
$exclude = array('.', '..', '.htaccess'); 
$q = (isset($_GET['q'])) ? strtolower($_GET['q']) : ''; 
$res = opendir($dir); 

while(false !== ($file = readdir($res))) { 
    if(strpos(strtolower($file), $q) !== false &&!in_array($file, $exclude)) { 
        echo "<a href='$dir/$file'>$file</a>"; 
        echo "<br>"; 
    } 
} 

closedir($res); 

}

答案 18 :(得分:0)

对我来说,将编译更改为实现即可解决

之前

compile 'androidx.recyclerview:recyclerview:1.0.0'
compile 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

之后

implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

答案 19 :(得分:0)

我整理了这里提到的所有解决方案,但是没有运气。 我在build.gradle文件中发现如下:

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

我只是按如下所示进行了更改,然后保存并尝试构建成功。

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

答案 20 :(得分:-2)

希望您受build.gradle(app)影响 如果这样做,请按照以下步骤

在build.gradle中用 androidTestImplementation

替换编译

androidTestImplementation 'com.android.support:appcompat-v7:27.1.1'
androidTestImplementation 'com.android.support:design:27.1.1'

那么简单!希望这能解决

答案 21 :(得分:-3)

在我的情况下,问题是Google服务gradle插件,在gradle文件中包含以下行:

  

应用插件:“ com.google.gms.google-services”

删除此内容即可解决问题

答案 22 :(得分:-7)

转到 build.gradle(应用级别)

build.gradle module app

并替换 &#34;编译&#34; 一词 &#34;实施&#34;

它将100%