仍然得到警告:配置'编译'已过时,已被'implementation'

在我的项目的build.gradle中,我已经用implementation替换了compile的所有出现,但我仍然得到这个警告:

enter image description here

我试图在整个项目中寻找“compile”,但没有找到匹配。那么原因是什么呢?

251701 次浏览

https://issuetracker.google.com/issues/72479188表示插件有时会引入“编译”依赖项,这就是触发警告的原因。可能只是最简单的星号问题,并等待,直到他们修复它,指出哪些插件导致的问题。

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

会有一些依赖仍然使用编译,仔细检查你的应用程序依赖和传递依赖。

我已经将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'
}
}

不需要拆线。正如Jkrevis所写的,更新com.google。Gms:google-services升级到3.2.0并停止警告。

打开构建。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.+'
}

我有一个相同的警告导致com.google.gms:google-services。

解决方案是升级classpath com.google。Gms:google-services到类路径'com.google.gms:google-services:3.2.0'在文件中构建。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版本依赖编译word被替换为 实施< / p >

依赖警告在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'


}

graddel生成的Android Studio 3.1的新项目。

 graddel 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

解决这个问题的变通办法是,我使用了一个旧版本的Gradle,可以找到在这里:

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

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

然后进入文件->设置->构建,执行,部署-> Gradle,并将设置更改为使用本地Gradle分布。在此之后,确保Gradle home字段指向刚刚解压到的目录中的. Gradle目录。

重新构建项目,一切都应该正常。

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

在项目级别build.gradle:

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

我已经更新了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'


}
}

我已经尝试在Android Studio 3.0.1中将谷歌GMS业务更改为最新的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"
}

最后,警告被删除!

去你构建。Gradle(应用级)

build。Gradle模块app

并将< em > "编译" < / em >替换为< em > "实现" < / em >

100%可以正常工作

在我的情况下,这是由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'
}
}

回到你的位置。在项目级别的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
}

仅仅更新谷歌服务版本对我来说不起作用。

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

在我的情况下,问题是谷歌服务gradle插件与以下一行在gradle文件:

应用插件:'com.google.gms.google-services'

删除这个就解决了这个问题

我没有使用com.google.gms:google-services就遇到了这个问题。 解决这类问题的方法如下:

  1. 检查所有项目和模块的build.gradle文件。或者只是全局搜索关键字“编译”,以找到引起此警告的原因。
  2. 如果上述方法不能解决此警告,则使用CLI命令, ./gradlew assembleDebug >gradle.log <代码> / < br > 打印详细调试信息到名为gradle.log或其他文件中,因为信息太多了。然后搜索“WARNING”找到gradle.log中的位置,通常你可以找到引起警告的依赖项或插件
希望build.gradle(app)对你有影响 如果这样做,遵循这个步骤

在build.gradle中将编译替换为androidTestImplementation

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

如此简单!希望这能解决

在我的例子中,它是一个旧的依赖项,使用compile来实现传递依赖项:com.jakewharton.hugo

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

你有两种选择:

    在你的project: build中添加类路径'com.google.gms:google-services:3.2.0'。gradle依赖性 和李< / >
  1. 替换你的模块:build。Gradle依赖于编译实现

只需从build.gradle中从build script中添加

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

并且所有依赖"compile"替换为"implementation"

这对我很管用。

当前版本为4.2.0:

buildscript {

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


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.2.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'
我尝试了这里提到的所有解决方案,但运气不好。 我在我的身材里发现的。Gradle文件如下:

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

我只是将其更改为如下所示并保存并尝试构建成功。

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

谷歌于2021年9月更新了其服务。给更新,我面临同样的问题,然后我更新构建。android studio中的Gradle文件

旧版本有问题

 classpath 'com.google.gms:google-services:4.3.3'

更新了build.gradle中的代码

classpath 'com.google.gms:google-services:4.3.10'