web-dev-qa-db-ja.com

API 'variant.getMergeResources()'は廃止され、 'variant.getMergeResourcesProvider()'に置き換えられました

私のプロジェクトで非常に迷惑な警告が発生しています:

_WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.Android.com/r/tools/task-configuration-avoidance.
REASON: It is currently called from the following trace:

...

WARNING: Debugging obsolete API calls can take time during configuration. It's recommended to not keep it on at all times.
Affected Modules: app
_

この警告は来年エラーになるので、是非一度修正したいと思います。

Gradleプラグイン、Google Play Servicesプラグイン、およびすべての依存関係を更新しましたが、まだ問題があります。

これがプロジェクトレベルの_build.gradle_ファイルです:

_buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.4.1'
        classpath 'com.google.gms:google-services:4.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

そしてこれがモジュールアプリ_build.gradle_ファイルです:

_apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.foo.bar"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 9
        versionName "1.08"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        checkReleaseBuilds false
        //If you want to continue even if errors found use following line
        abortOnError false
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ...
}

apply plugin: 'com.google.gms.google-services'
_

ご覧のとおり、私はgetMergeResources()を直接使用していないため、依存関係の1つである必要があります。依存関係を1つずつコメントアウトして、最終的に空の依存関係リストを作成しました。しかし、警告が出されました。次に、_apply plugin: 'com.google.gms.google-services'_をコメントアウトすると問題が解決することを見つけました。しかし、私は最新のgoogleサービスプラグインを使用しており、それがないと関連するFirebaseを使用できません。

どうすれば修正できますか? Gradleプラグインを一時的に修正するだけなので、ダウングレードするのは好きではありません。

15
Makalele

プロジェクトレベルのGradleでクラスパスの依存関係を変更してください:

buildscript {

    dependencies {

         classpath 'com.Android.tools.build:gradle:3.1.4'
    }
 }

使っています。正常に動作しています。これは安定版です。この問題がこの依存関係の将来のバージョンで修正されることを願っています。

0
Anupam