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?


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

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


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'

    }
}

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'
        ...  
    }
}

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.+'
}

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.


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.


6

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


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.

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

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.

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
}

2

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

Setelah menghapusnya dari gradle saya itu dikompilasi.


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.


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!


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.

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.


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

}


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'

-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


-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


-7

pergi ke Anda build.gradle (level aplikasi)

aplikasi modul build.gradle

dan ganti kata "kompilasi" dengan "implementasi"

itu akan bekerja 100%


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.