我已在项目的compile中用implementation替换了build.gradle的所有出现,但仍收到此警告:



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

评论

您是否还在使用仍在使用“编译”的本地库?

@Devsil可能...但是我如何找出哪一个呢?我在整个项目中尝试了“在路径中查找”,但是找不到任何编译对象。.

如果您使用的是本地库,则会在Android Studio窗口右侧的项目查看器中看到其gradle.build文件。在该build.gradle文件中,它可能包含与实现相反的“编译”。如果您看到任何build.gradle文件,则其中不包含该文件。您使用的图书馆可能不是本地的,因此您无权更改。因此,此警告暂时可以忽略。

Gradle应该提供发生问题的行号

试试看:stackoverflow.com/questions/48623244/…并解决以下问题:android.arch.persistence.room:runtime:1.1.1在“项目结构”对话框中打开“文件显示”,尝试将版本更改为1.0.0

#1 楼

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


评论


配置“编译”已过时,并已由“实现”代替。它将在2018年底删除。为了清楚起见,我不使用任何Google服务依赖项{classpath'com.android.tools.build:gradle:3.1.0'}

– Amit_android
18-4-4在4:31



我收到“找不到com.google.gms:google-services:3.2.0”。当我尝试这个。更新:更改它会在我将其更改回3.1.1时手动触发棉绒警告,然后按Alt + Enter以应用修复程序将其自动更改为com.google.gms:google-services:3.2.0,同步时没有错误。我不确定有什么区别,但是令人沮丧。

– jwehrle
18年4月8日在21:18



好吧,我相信我理解其中的区别。我已将Project and Module build.gradle gms类路径更改为版本3.2.0。导致问题的原因是模块更改。仅更改Project build.gradle gms类路径版本。

– jwehrle
18年4月8日在21:27

我也缺少jcenter()回购!该项目很旧,没有回购!

– Yani2000
18年4月22日在16:53

您是说我应该手动将该行添加到文件中吗?

–晚安
18年4月22日在18:40

#2 楼

我对com.google.gms:google-services发出了同样的警告。

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



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中,依赖项是在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。



访问https://docs.gradle.org/当前/用户指南/dependency_management_for_java_projects.html

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

评论


请注意,“ testCompile”更改为“ testImplementation”。

– AJW
18年8月10日在3:05

大多数答案以及最受欢迎的答案都集中在com.google.gms:google-services上,但这都是关于更新两个gradle文件中的旧命名样式的全部

–kommradHomer
18年9月9日在21:12

#3 楼

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

    }
}


评论


您只需要更改版本即可,例如我拥有此“ com.google.gms:google-services:3.2.0”,只需将3.2.0替换为3.2.1。

–Prateek218
18年7月25日在10:03

谢谢,我更新了错误的课程,这就是为什么我得到错误。

–霍拉
18年7月26日在0:51

我的版本类路径“ com.google.gms:google-services:4.1.0”不是最新更新的,是的,它大于3.2.0。仍然没有解决方案!

–sud007
19年2月22日在7:10

@ sud007您能否解释一下您面临的问题或发布build.gradle(项目级别)

–Prateek218
19-2-22在11:39



#4 楼

使用最新版本的google gms服务为我解决了该问题。

在项目级别build.gradle:

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


#5 楼

打开位于以下位置的build.gradle文件:



这是编写依赖项库的旧方法(适用于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.+'
}


评论


谢谢你,朋友!截至2019年1月,这似乎是最新的答案

–NaturalBornCamper
19年1月21日在4:33

该答案对第一次遇到此问题的人有用。尽管,OP有一个不同的问题,即即使进行了这些更改,仍会显示错误消息。

–sud007
19年2月22日在7:07

#6 楼

google的回复:https://issuetracker.google.com/issues/74048134

仍然有一些依赖项仍在使用编译,请仔细检查您的应用程序依赖项和可传递依赖项。

评论


我为我的项目删除了所有build.gradles中的所有依赖项,但仍然收到错误

–相信
18 Mar 28 '18在2:39

编辑:这是使用旧版本的领域引起的

–相信
18 Mar 28 '18在2:45

#7 楼

https://issuetracker.google.com/issues/72479188指示插件有时会引入“编译”依赖项,这就是触发警告的原因。也许最容易给该问题加注星标,然后等待他们修复它,以指出引起该问题的插件。

#8 楼

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

评论


您是否在项目的build.gradle(Module:App)中将所有出现的“ compile”替换为“ implementation”,并将build.gradle(Project)中的com.google.gms:google-services更新为3.2.0?

–汤姆
18-4-9在20:58



#9 楼

我没有使用com.google.gms:google-services遇到此问题。
解决此类问题的解决方案如下:


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


评论


我认为这是一般的解决方案。该问题可能是由您的一个或多个依赖项引起的

– Rasmusob
18/12/10在12:26

#10 楼

就我而言,这是由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'
  }
}


#11 楼

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


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


#12 楼

转到项目级别的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
}


#13 楼

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

从我的gradle中删除它之后,就对其进行了编译。

#14 楼

解决此问题的方法对我来说是,我使用的是Gradle的旧版本,可以在这里找到:

我使用gradle-3.0-rc-1-src版本,但其他版本也可以工作同样,尽管它可能不应该比3.0版本更新。

首先将zip文件解压缩到您喜欢的任何位置。

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

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

#15 楼

我尝试将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"
}


最后警告被消除了!

#16 楼

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


在您的项目中添加类路径'com.google.gms:google-services:3.2.0':build.gradle依赖项
和< br替换您的模块:build.gradle依赖于与实现的依赖
,您将不会收到任何警告消息。


#17 楼

只需从build.gradlebuild script中添加

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


,然后将所有依赖项"compile"替换为"implementation"

是我的工作。

评论


注意,如果使用的是类路径,则必须在buildscript块中使用它;而且,不能在buildscript块内使用实现。

–ChumiestBucket
19年1月9日,0:07

#18 楼

当前版本为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'
}


}

#19 楼

对我来说,将编译更改为实现已修复

之前

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'


#20 楼

我整理了这里提到的所有解决方案,但是没有运气。
我在build.gradle文件中发现如下:
dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
    }

我只是如下更改并保存并尝试构建成功。
dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }


#21 楼

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

在build.gradle中用androidTestImplementation替换编译

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


很简单!希望这能解决

#22 楼

就我而言,问题是Google服务gradle插件,在gradle文件中包含以下行:


Apply插件:'com.google.gms.google-services'


消除此问题已解决问题

#23 楼

转到您的build.gradle(应用程序级别)

build.gradle模块应用程序

,并将“编译”一词替换为“实现”

会100%工作

评论


这个答案没有用。 OP已声明已完成,因此可能无济于事。

–NightOwl888
18年4月18日在1:20

我遇到了同样的问题,我无法生成该应用的apk bcoz,该答案解决了我的问题

– Ayoub
18年4月18日在12:52

这是不一样的情况,OP已经说过他这样做了(我也在同一条船上),这是由于依赖关系造成的

– ElliotM
18年4月27日在14:44

OP说:“我已经用实现取代了每次编译的发生”。

– mapo
18年7月18日在19:55