引き続き警告が表示されます:構成「コンパイル」は廃止され、「実装」に置き換えられました


332

のすべてのをプロジェクトので置き換えましcompileimplementationが、build.gradleまだこの警告が表示されます:

ここに画像の説明を入力してください

プロジェクト全体で「コンパイル」を検索しようとしましたが、一致するものが見つかりませんでした。それでは何が原因でしょうか?


まだ「コンパイル」を使用しているローカルライブラリを使用していますか?
Devsil

@Devsil多分...しかし、どのようにしてどれを見つけることができますか?プロジェクト全体でFind in Pathを試しましたが、compile..の発生を見つけることができませんでした
Rob

2
ローカルライブラリを使用している場合は、Android Studioウィンドウの右側のプロジェクトビューアーにあるgradle.buildファイルが表示されます。そのbuild.gradleファイルには、実装ではなく「コンパイル」が含まれている場合があります。そこにあるbuild.gradleファイルにそれが含まれていない場合。ローカルではないライブラリを使用している可能性があるため、ライブラリを変更するためのアクセス権が与えられていません。したがって、この警告は今のところ無視できます。
Devsil

1
Gradleは問題が発生している行番号を提供する必要があります
Yetti99

試してみてください:stackoverflow.com/questions/48623244/…そしてFailed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogバージョンを次のように変更してみてください1.0.0
Saeid

回答:


496

com.google.gms:google-servicesから3.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
構成「コンパイル」は廃止され、「実装」に置き換えられました。2018年の終わりに削除されます。明確にするために、Googleサービスの依存関係を使用していない{classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android

「com.google.gms:google-services:3.2.0が見つかりませんでした」と表示されます。これを試してみると 更新:変更すると、手動でトリガーされたlint警告が3.1.1に戻ったときに、Alt + Enterを押して修正を適用すると、自動的にcom.google.gms:google-services:3.2.0に変更され、同期エラーが発生しませんでした。何が違うのかはわかりませんが、イライラします。
jwehrle

わかりました、違いは理解できたと思います。プロジェクトとモジュールのbuild.gradle gmsクラスパスをバージョン3.2.0に変更しました。問題の原因となったのはモジュールの変更です。プロジェクトのbuild.gradle gmsクラスパスバージョンのみを変更します。
jwehrle

jcenter()リポジトリもありませんでした!プロジェクトは非常に古く、そのリポジトリは含まれていませんでした!
Yani2000

その行を手動でファイルに追加する必要があるということですか?
hellogoodnight

125

com.google.gms:google-servicesに同じ警告が1つあります。

解決策は、build.gradleプロジェクトのファイルでクラスパスcom.google.gms:google-servicesをクラスパス 'com.google.gms:google-services:3.2.0'にアップグレードすることです。

ここに画像の説明を入力してください

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 verion 3.1で、依存関係のcomplieワードが実装に置き換えられました

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では依存関係はOKです

    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'

    }

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


「testCompile」が「testImplementation」に変更されることに注意してください。
AJW 2018

ほとんどの回答、そして最も人気のある回答もすべてcom.google.gms:google-servicesに焦点を当てていますが、それは両方の
Gradle

32

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 2018

ありがとう、間違ったクラスを更新していたので、エラーが発生しました。
Jhorra 2018

2
私はclasspath 'com.google.gms:google-services:4.1.0'ほとんど更新されていないバージョンを持っていますが、ええ、それはより大きいです3.2.0。まだ解決策はありません!
sud007

@ sud007は、直面している問題について少し説明したり、build.gradle(プロジェクトレベル)を投稿したりできますか
Prateek218

22

google gmsサービスの現在の最新バージョンを使用することで解決しました。

プロジェクトレベルのbuild.gradle:

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

18

次の場所にある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.+'
}

1
ありがとう、友達!これは、2019
NaturalBornCamper

この回答は、この問題に初めて直面している人に役立ちます。OPには別の質問がありますが、変更後もエラーメッセージが表示されます。
sud007

13

グーグルで返信:https//issuetracker.google.com/issues/74048134

まだコンパイルを使用している依存関係があります。アプリケーションの依存関係と推移的な依存関係を注意深く確認してください。


1
プロジェクトのすべてのbuild.gradlesですべての依存関係を削除しましたが、それでもエラーが発生します
behelit 2018年

3
編集:それは古いバージョンを使用して、レルムによって引き起こされました
ヘリコプター2018年

7

https://issuetracker.google.com/issues/72479188は、プラグインが「コンパイル」依存関係を導入することがあり、それが警告をトリガーするものであることを示しています。おそらく、その問題にスターを付けて、問題が発生しているプラ​​グインを指摘するように修正されるまで待つのが最も簡単でしょう。


6

行を削除する必要はありません。Jkrevisが書いたように、com.google.gms:google-servicesを3.2.0に更新すると、警告が停止します。


1
プロジェクトのbuild.gradle(Module:App)ですべての 'compile'を 'implementation'に置き換え、build.gradle(Project)のcom.google.gms:google-servicesを3.2.0に更新しましたか?
トム

6

を使用せずにこの問題が発生しましたcom.google.gms:google-services。この種の問題を以下のように解決するソリューション:

  1. build.gradleすべてのプロジェクトとモジュールのファイルを確認してください。または、グローバル検索キーワード「コンパイル」だけで、この警告の原因を特定できます。
  2. 上記の方法でこの警告を解決できない場合は、CLIコマンドを使用して、 ./gradlew assembleDebug -d > gradle.log
    詳細なデバッグ情報を名前の付いたファイルgradle.logなどに出力します。情報が多すぎるためです。次に、「警告」という単語を検索しての位置を見つけますgradle.log。通常、どの依存関係またはプラグインが警告を引き起こしているのかを見つけることができます。

2
これが一般的な解決策だと思います。この問題は、依存関係の1つまたは複数が原因である可能性があります
Rasmusob

5

私の場合、それはレルムライブラリの原因です。レルムの最新バージョン(これまでのところ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'
  }
}

3

google-serviceのバージョンを更新するだけではうまくいきませんでした。

  • まず、すべての依存関係compileがに置き換えられていることを確認してくださいimplementation
  • プロジェクトのすべての依存関係を更新します。依存関係の1つが持っているcompile場合、プロジェクトでこのエラーが表示されるためです。したがって、すべての依存関係バージョンを更新します。

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
}

2

私の場合、推移的な依存関係にコンパイルを使用していたのは古い依存関係でした。 com.jakewharton.hugo

私のgradleから削除した後、コンパイルされました。


1

この問題を解決するための回避策は、私が古いバージョンのGradleを使用したことでし

私はgradle-3.0-rc-1-srcバージョンを使用しましたが、おそらく3.0バージョンよりも新しいはずではありませんが、他のものも動作する可能性があります。

まず、zipファイルを好きな場所に解凍します。

次に、[ファイル]-> [設定]-> [ビルド、実行、デプロイメント]-> [Gradle]に移動し、設定を[ローカルのGradleディストリビューションを使用]に変更します。その後、Gradle Homeフィールドが、解凍したディレクトリの.gradleディレクトリを指していることを確認してください。

プロジェクトを再構築すると、すべてが正常に行われるはずです。


0

私はgoogle gmsサービスcom.google.gms:google-services:3.2.1Android Studio 3.0.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"
}

そして最後に警告が削除されます!


0

この2つのオプションを実行できます。

  1. urプロジェクトにクラスパス 'com.google.gms:google-services:3.2.0'を追加:build.gradle依存関係と
  2. モジュールを置き換えます:complileと実装の依存関係にあるbuild.gradleと警告メッセージは表示されません。

0

build.gradleから追加するだけbuild script

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

そして、すべての依存関係はに"compile"置き換えられ"implementation"ます。

それは私から働いた。


使用しているclasspath場合は、buildscriptブロック内で使用する必要があることに注意してください。また、ブロックimplementation内では使用できませんbuildscript
ChumiestBucket

0

現在のバージョンは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'
}

}


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'

-2

あなたがbuild.gradle(app)の影響を受けていることを願っていますそうする場合は、この手順に従ってください

build.gradleでcompileandroidTestImplementationに置き換えます

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

とても簡単 !これが解決することを願っています


-3

私の場合、問題はgradleファイルに次の行が含まれるGoogleサービスgradleプラグインでした:

プラグインを適用: 'com.google.gms.google-services'

これを削除すると問題が解決しました


-7

あなたに行きますbuild.gradle(アプリレベル)

build.gradleモジュールアプリ

「コンパイル」という単語を「実装」に置き換えます

100%動作します


6
この答えは役に立ちません。OPはすでにこれが行われたと述べているので、おそらく役に立たない。
NightOwl888 2018

1
私は同じ問題を抱えていましたが、そのアプリapk bcozを生成できませんでした。その答えが私の問題を解決しました
Ayoub

これは同じ状況ではありません、OPはこれを行ったと既に述べています(私も同じボートにいます)これは依存関係によるものです
ElliotM

OPは、「コンパイルによるすべての発生を実装で置き換えました」と述べました。
mapo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.