Masih mendapat peringatan: Konfigurasi 'kompilasi' sudah usang dan telah diganti dengan 'implementasi'

332

Saya telah mengganti setiap kemunculan compileoleh implementationdalam proyek saya build.gradle, tetapi saya masih mendapatkan peringatan ini:

masukkan deskripsi gambar di sini

Saya mencoba mencari "kompilasi" di seluruh proyek tetapi tidak ada kecocokan yang ditemukan. Jadi apa yang bisa menjadi penyebabnya?

rampok
sumber
Apakah Anda menggunakan perpustakaan lokal yang masih menggunakan 'kompilasi'?
Devsil
@ Evsil mungkin ... tapi bagaimana saya bisa tahu yang mana? Saya mencoba Find in Path di seluruh proyek tetapi tidak dapat menemukan kejadian compile..
Rob
2
Jika Anda menggunakan perpustakaan lokal Anda akan melihat file gradle.build yang terletak di penampil proyek di sisi kanan jendela Android Studio Anda. Dalam file build.gradle itu mungkin berisi "kompilasi" yang bertentangan dengan implementasi. Jika ada file build.gradle yang Anda lihat di sana tidak mengandung itu. Mungkin pustaka yang Anda gunakan yang bukan lokal sehingga tidak memberi Anda akses untuk mengubahnya. Jadi peringatan ini bisa diabaikan begitu saja untuk saat ini.
Devsil
1
Gradle harus memberikan nomor baris di mana masalahnya terjadi
Yetti99
coba: stackoverflow.com/questions/48623244/… dan untuk Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogmencoba mengubah versinya menjadi1.0.0
Saeid

Jawaban:

496

Saya telah memperbarui com.google.gms:google-servicesdari 3.1.1ke 3.2.0dan peringatan berhenti muncul.

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
sumber
1
Konfigurasi 'kompilasi' sudah usang dan telah diganti dengan 'implementasi'. Itu akan dihapus pada akhir tahun 2018 Untuk menjadi jelas saya tidak menggunakan dependensi layanan google apa pun {classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android
Saya mendapatkan "Tidak dapat menemukan com.google.gms: google-services: 3.2.0." ketika saya mencoba ini. Pembaruan: mengubahnya secara manual memicu peringatan serat ketika saya mengubahnya kembali ke 3.1.1, lalu Alt + Enter untuk menerapkan perbaikan secara otomatis mengubahnya ke com.google.gms: google-services: 3.2.0 tanpa kesalahan sinkronisasi. Saya tidak yakin apa bedanya tetapi itu membuat frustrasi.
jwehrle
Baiklah, saya percaya saya mengerti perbedaannya. Saya telah mengubah classpath Proyek dan Modul build.gradle gms ke versi 3.2.0. Perubahan Modullah yang menyebabkan masalah. Ubah hanya versi classpath Proyek build.gradle gms.
jwehrle
Saya juga kehilangan repositori jcenter ()! Proyek ini sudah sangat tua dan tidak termasuk repo!
Yani2000
Apakah maksud Anda saya harus menambahkan baris itu secara manual ke file?
hellogoodnight
125

Saya memiliki satu Peringatan yang sama dengan com.google.gms: google-services.

Solusinya adalah meng - upgrade classpath com.google.gms: google-services ke classpath 'com.google.gms: google-services: 3.2.0' dalam file di build.gradle Project:

masukkan deskripsi gambar di sini

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
}

Di Android Studio verion 3.1 dependensi kata pelengkap diganti menjadi implementasi

dependensi dengan Peringatan di 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'
    }

dependensi OK di 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'

    }

Gradel menghasilkan oleh Android Studio 3.1 untuk proyek baru.

Gradel menghasilkan oleh Android Studio 3.1 untuk proyek baru.

Kunjungi https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html

Untuk perincian https://docs.gradle.org/current/userguide/declaring_dependencies.html

Didier
sumber
Perhatikan bahwa "testCompile" berubah menjadi "testImplementation".
AJW
sebagian besar jawabannya, dan yang paling populer juga, semuanya berfokus pada com.google.gms: google-services tetapi ini semua tentang memperbarui gaya penamaan lama di kedua file
gradle
32

Saya telah memperbarui com.google.gms: google-services dari 3.2.0 ke 3.2.1 dan peringatan berhenti muncul.

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}
Prateek218
sumber
Anda hanya perlu mengubah versi seperti saya punya ini 'com.google.gms: google-services: 3.2.0' yang perlu Anda lakukan cukup ganti 3.2.0 dengan 3.2.1.
Prateek218
Terima kasih, saya telah memperbarui kelas yang salah, itu sebabnya saya mendapat kesalahan.
Jhorra
2
Saya memiliki versi yang classpath 'com.google.gms:google-services:4.1.0'paling tidak diperbarui tetapi ya, itu lebih besar dari 3.2.0. Tidak ada resolusi!
sud007
@ sud007 dapatkah Anda menjelaskan sedikit masalah apa yang Anda hadapi atau poskan build.gradle (Tingkat proyek)
Prateek218
22

Menggunakan versi terbaru dari layanan google gms menyelesaikannya untuk saya.

Di build.gradle tingkat proyek:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}
Hovanes Mosoyan
sumber
18

Buka file build.gradle Anda yang berada di sini:

masukkan deskripsi gambar di sini

Ini adalah cara lama penulisan dependensi libraries (untuk gradle versi 2 dan di bawah):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.android.support:support-v4:21.+'
}

Ini adalah cara baru (kanan) untuk mengimpor dependensi untuk gradle versi 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.+'
}
Gene
sumber
1
Terima kasih teman! Ini sepertinya jawaban paling baru di sini pada Januari 2019
NaturalBornCamper
Jawaban ini bermanfaat bagi mereka yang menghadapi masalah ini untuk pertama kalinya. Meskipun, OP memiliki pertanyaan yang berbeda, yang mengatakan bahwa bahkan setelah perubahan itu, pesan kesalahan ditampilkan.
sud007
13

Balas dengan google: https://issuetracker.google.com/issues/74048134

Akan ada beberapa dependensi yang masih menggunakan kompilasi, periksa dependensi aplikasi Anda dan dependensi transitif dengan hati-hati.

quangkid
sumber
1
Saya menghapus SEMUA dependensi di SEMUA build.gradles untuk proyek saya dan masih mendapatkan kesalahan
behelit
3
EDIT: Itu disebabkan oleh ranah, menggunakan versi yang lebih tua
behelit
7

https://issuetracker.google.com/issues/72479188 menunjukkan bahwa kadang-kadang plugin dapat memperkenalkan dependensi "kompilasi" dan itulah yang memicu peringatan. Mungkin paling mudah untuk membintangi masalah itu dan menunggu sampai mereka memperbaikinya untuk menunjukkan plugin mana yang menyebabkan masalah.

Eric
sumber
6

Tidak perlu menghapus garis. Seperti yang ditulis Jkrevis, perbarui com.google.gms: google-services ke 3.2.0 dan menghentikan peringatan.

Tom
sumber
1
Apakah Anda mengganti setiap kemunculan 'kompilasi' dengan 'implementasi' di build.gradle proyek Anda (Modul: Aplikasi) dan memperbarui com.google.gms: google-services di build.gradle (Project) menjadi 3.2.0?
Tom
6

Saya mengalami masalah ini tanpa menggunakan com.google.gms:google-services. Solusi pemecahan masalah semacam ini seperti di bawah ini:

  1. periksa build.gradlefile semua proyek dan modul. Atau hanya kata kunci pencarian global 'kompilasi' untuk menemukan di mana menyebabkan peringatan ini.
  2. Jika metode di atas tidak dapat menyelesaikan peringatan ini, maka gunakan perintah CLI, ./gradlew assembleDebug -d > gradle.log
    cetak detail informasi debug ke file bernama gradle.logatau yang lain, karena informasinya terlalu banyak. Kemudian cari kata "PERINGATAN" untuk menemukan posisi dalam gradle.log, biasanya Anda dapat menemukan ketergantungan atau plugin apa yang menyebabkan peringatan.
zangliang
sumber
2
Saya pikir ini adalah solusi umum. Masalahnya dapat disebabkan oleh salah satu, atau beberapa dari ketergantungan Anda
Rasmusob
5

Dalam kasus saya, ini disebabkan oleh pustaka Realm, setelah saya memperbaruinya ke versi terbaru (5.1.0 sejauh ini) dari Realm, masalah terpecahkan!

Inilah skrip gradle yang berfungsi:

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'
  }
}
ken
sumber
3

Hanya memperbarui versi layanan google tidak bekerja untuk saya.

  • Pertama-tama pastikan semua dependensi Anda compilediganti implementation.
  • Perbarui semua dependensi dalam proyek Anda. Karena jika salah satu dari ketergantungan Anda adalah compilemaka proyek Anda akan menunjukkan kesalahan ini. Jadi perbarui semua versi dependensi.
Khemraj
sumber
2

buka file build.gradle Anda di tingkat proyek, Anda akan menemukan garis-garis berikut disorot

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
}
RABI Hamza
sumber
2

Dalam kasus saya itu adalah ketergantungan lama yang menggunakan kompilasi untuk dependensi transitif: com.jakewharton.hugo

Setelah menghapusnya dari gradle saya itu dikompilasi.

PerrierCitror
sumber
1

Solusi untuk menyelesaikan masalah ini bagi saya adalah saya menggunakan versi Gradle yang lebih lama, yang dapat ditemukan di sini :

Saya menggunakan versi gradle-3.0-rc-1-src, tetapi yang lain mungkin bekerja juga, meskipun mungkin seharusnya tidak lebih baru dari versi 3.0.

Ekstrak file zip terlebih dahulu ke mana saja Anda suka.

Lalu buka File -> Pengaturan -> Build, Eksekusi, Deployment -> Gradle dan ubah pengaturan untuk Menggunakan distribusi gradle lokal. Setelah itu pastikan bahwa bidang Home Gradle menunjuk ke direktori .gradle di direktori yang baru saja Anda buka ritsletingnya.

Bangun kembali proyek dan semuanya akan beres.

tpn
sumber
0

Saya telah mencoba mengubah layanan google gms ke yang terbarucom.google.gms:google-services:3.2.1 di Android Studio 3.0.1 tetapi peringatannya tetap ada.

Seperti yang direkomendasikan oleh compiler, saya mengubah semua compiledependensi untuk implementationdan testCompileuntuk testImplementationseperti ini ..

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"
}

Dan akhirnya peringatan itu dihapus!

Haileapp
sumber
0

Anda dapat melakukan dua opsi ini:

  1. Tambahkan classpath 'com.google.gms: google-services: 3.2.0' di proyek Anda: dependensi build.gradle dan
  2. Ganti modul Anda: build.gradle dalam ketergantungan dari kompilasi dengan implementasi dan Anda tidak akan mendapatkan pesan peringatan.
Jasbin Karki
sumber
0

Cukup tambahkan dari build.gradledaribuild script

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

dan semua dependensi "compile"diganti menjadi "implementation".

itu berhasil dari saya.

Omae wa mou shindairu
sumber
Perhatikan bahwa jika Anda menggunakan classpathAnda harus menggunakannya di dalam buildscriptblok; selain itu, seseorang tidak dapat menggunakan implementationdi dalam buildscriptblok.
ChumiestBucket
0

Versi saat ini adalah 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'
}

}

Frank Eno
sumber
0

Bagi saya mengubah kompilasi untuk implementasi memperbaikinya

Sebelum

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'

Setelah

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'
Jagadesha NH
sumber
-2

Berharap Anda terpengaruh dengan build.gradle (aplikasi) Jika melakukannya, ikuti langkah ini

Ganti kompilasi dengan androidTestImplementation di build.gradle

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

sangat sederhana ! Semoga ini akan menyelesaikan

Thiyagu
sumber
-3

Dalam kasus saya masalahnya adalah plugin Google layanan gradle dengan baris berikut di file gradle:

terapkan plugin: 'com.google.gms.google-services'

Menghapus ini menyelesaikan masalah

Ujjwal Singh
sumber
-7

pergi ke Anda build.gradle (level aplikasi)

aplikasi modul build.gradle

dan ganti kata "kompilasi" dengan "implementasi"

itu akan bekerja 100%

Ayoub
sumber
6
Jawaban ini tidak berguna. OP sudah menyatakan bahwa ini dilakukan, jadi tidak mungkin membantu.
NightOwl888
1
saya memiliki masalah yang sama, saya tidak dapat membuat apk aplikasi bcoz itu, jawaban itu memecahkan masalah saya
Ayoub
Ini bukan situasi yang sama, OP sudah menyatakan dia melakukan ini (saya juga di kapal yang sama) itu karena ketergantungan
ElliotM
OP mengatakan "Saya telah mengganti setiap kemunculan kompilasi dengan implementasi".
mapo