仍然收到警告:配置'编译'已经过时,已被'实施'取代

Rob*_*Rob 324 android build gradle

我已经更换的每次出现compileimplementation在我的项目build.gradle,但我仍然得到这样的警告:

在此输入图像描述

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

小智 491

我已更新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'
    }
}
Run Code Online (Sandbox Code Playgroud)


Did*_*ier 122

我对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
}
Run Code Online (Sandbox Code Playgroud)

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

在android studio 3.1中使用Warning的依赖项

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'
    }
Run Code Online (Sandbox Code Playgroud)

依赖关系在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'

    }
Run Code Online (Sandbox Code Playgroud)

Gradel由Android Studio 3.1为新项目生成.

Gradel由Android Studio 3.1为新项目生成.

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

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


Pra*_*218 31

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

    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我的版本 `classpath 'com.google.gms:google-services:4.1.0'` 不是最新的,但是,它大于 `3.2.0`。还是没有解决! (2认同)

Hov*_*yan 22

使用当前最新版本的谷歌gms服务解决了它.

在项目级build.gradle中:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}
Run Code Online (Sandbox Code Playgroud)


Gen*_*ene 17

打开位于此处的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.+'
}
Run Code Online (Sandbox Code Playgroud)

这是导入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.+'
}
Run Code Online (Sandbox Code Playgroud)


qua*_*kid 13

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

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

  • 编辑:它是由领域引起的,使用旧版本 (3认同)

Eri*_*ric 7

https://issuetracker.google.com/issues/72479188表明插件有时会引入"编译"依赖项,这就是触发警告的原因.可能只是最容易解决这个问题并等到他们修复它以指出哪些插件导致问题.


Tom*_*Tom 6

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


zha*_*ang 6

我在不使用com.google.gms:google-services. 解决此类问题的解决方案如下:

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

  • 我认为这是通用的解决方案。问题可能是由您的任何一个或多个依赖项引起的 (2认同)

ken*_*ken 5

在我的情况下,这是由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'
  }
}
Run Code Online (Sandbox Code Playgroud)