Vẫn nhận được cảnh báo: Cấu hình 'biên dịch' đã lỗi thời và đã được thay thế bằng 'triển khai'


332

Tôi đã thay thế tất cả xảy ra compilebởi implementationtrong dự án của tôi build.gradle, nhưng tôi vẫn nhận được cảnh báo này:

nhập mô tả hình ảnh ở đây

Tôi đã cố gắng tìm kiếm "biên dịch" trong toàn bộ dự án nhưng không tìm thấy kết quả khớp nào. Vì vậy, những gì có thể là nguyên nhân?


Bạn có đang sử dụng thư viện cục bộ đang sử dụng 'biên dịch' không?
Devsil

@Devsil có thể ... nhưng làm thế nào tôi có thể tìm ra cái nào? Tôi đã thử Tìm đường dẫn trong toàn bộ dự án nhưng không thể tìm thấy bất kỳ sự xuất hiện nào của compile..
Rob

2
Nếu bạn đang sử dụng thư viện cục bộ, bạn sẽ thấy tệp gradle.build nằm trong trình xem dự án ở bên phải cửa sổ Android Studio của bạn. Trong tệp build.gradle đó, nó có thể chứa một "biên dịch" trái ngược với thực hiện. Nếu bất kỳ tệp build.gradle nào bạn thấy ở đó không chứa tệp đó. Nó có thể là một thư viện bạn đang sử dụng không phải là cục bộ do đó không cho phép bạn truy cập để thay đổi điều đó. Vì vậy, cảnh báo này có thể được bỏ qua ngay bây giờ.
Devsil

1
Gradle nên cung cấp số dòng nơi xảy ra sự cố
Yetti99

dùng thử: stackoverflow.com/questions/48623244/Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogthử thay đổi phiên bản thành1.0.0
Saeid

Câu trả lời:


496

Tôi đã cập nhật com.google.gms:google-servicestừ 3.1.1đến 3.2.0và cảnh báo ngừng xuất hiện.

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
Cấu hình 'biên dịch' đã lỗi thời và đã được thay thế bằng 'triển khai'. Nó sẽ bị xóa vào cuối năm 2018 Để rõ ràng không sử dụng bất kỳ phụ thuộc dịch vụ google nào {classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android

Tôi nhận được "Không thể tìm thấy com.google.gms: google-services: 3.2.0." khi tôi thử cái này Cập nhật: thay đổi thủ công kích hoạt cảnh báo lint khi tôi thay đổi lại thành 3.1.1, sau đó Alt + Enter để áp dụng sửa lỗi tự động thay đổi thành com.google.gms: google-services: 3.2.0 không có lỗi khi đồng bộ hóa. Tôi không chắc sự khác biệt là gì nhưng thật bực bội.
jwehrle

Được rồi, tôi tin rằng tôi hiểu sự khác biệt. Tôi đã thay đổi classpath Project và Module build.gradle gms thành phiên bản 3.2.0. Chính sự thay đổi Mô-đun đã gây ra sự cố. Chỉ thay đổi phiên bản classpath Project build.gradle gms.
jwehrle

Tôi cũng đã mất jcenter () repo! Dự án đã rất cũ và không có repo đó!
Yani2000

Bạn có nghĩa là tôi chỉ nên thêm dòng đó vào tệp một cách thủ công?
hellogoodnight

125

Tôi có một Cảnh báo tương tự gây ra cho com.google.gms: google-services.

Giải pháp là nâng cấp classpath com.google.gms: google-services lên classpath 'com.google.gms: google-services: 3.2.0' trong tệp trong build.gradle Project:

nhập mô tả hình ảnh ở đây

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
}

Trong Android Studio verion 3.1, phần phụ thuộc từ được thay thế để thực hiện

phụ thuộc với Cảnh báo trong studio android 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'
    }

phụ thuộc OK trong studio android 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 tạo bởi Android Studio 3.1 cho dự án mới.

Gradel tạo bởi Android Studio 3.1 cho dự án mới.

Truy cập https://docs.gradle.org/civerse/userguide/dependency_man Quản lý_for_java_projects.html

Để biết chi tiết https://docs.gradle.org/civerse/userguide/declaring_dependencies.html


Lưu ý rằng "testCompile" thay đổi thành "testImcellenceation".
AJW

hầu hết các câu trả lời, và câu trả lời phổ biến nhất, đều tập trung vào com.google.gms: google-services nhưng tất cả chỉ là về việc cập nhật kiểu đặt tên cũ trong cả hai tệp lớp
kommradHomer

32

Tôi đã cập nhật com.google.gms: google-services từ 3.2.0 đến 3.2.1 và cảnh báo đã ngừng xuất hiện.

 buildscript {

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

    }
}

bạn chỉ cần thay đổi phiên bản như tôi có 'com.google.gms: google-services: 3.2.0', bạn chỉ cần thay thế 3.2.0 bằng 3.2.1.
Prateek218

Cảm ơn, tôi đã cập nhật lớp sai, đó là lý do tại sao tôi gặp lỗi.
Jhorra

2
Tôi có phiên bản classpath 'com.google.gms:google-services:4.1.0'không cập nhật nhất nhưng vâng, nó lớn hơn 3.2.0. Không có giải pháp vẫn còn!
sud007

@ sud007 bạn có thể giải thích một chút vấn đề bạn đang gặp phải hoặc đăng bản dựng của bạn.gradle (Cấp dự án)
Prateek218

22

Sử dụng phiên bản mới nhất hiện tại của dịch vụ google gms đã giải quyết nó cho tôi.

Trong cấp độ dự án build.gradle:

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

18

Mở tệp build.gradle của bạn ở đây:

nhập mô tả hình ảnh ở đây

Đây là cách viết cũ của các thư viện phụ thuộc (đối với phiên bản lớp 2 trở xuống):

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

Đây là cách mới (phải) để nhập phụ thuộc cho phiên bản lớp 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
Cảm ơn bạn! Đây có vẻ như là câu trả lời cập nhật nhất ở đây kể từ tháng 1 năm 2019
NaturalBornCamper

Câu trả lời này rất hữu ích cho những người lần đầu tiên đối mặt với vấn đề này. Mặc dù, OP có một câu hỏi khác, trong đó nói rằng ngay cả sau những thay đổi đó, thông báo lỗi vẫn được hiển thị.
sud007

13

Trả lời bởi google: https://issuetracker.google.com/issues/74048134

Sẽ có một số phụ thuộc vẫn sử dụng biên dịch, kiểm tra các phụ thuộc ứng dụng của bạn và các phụ thuộc bắc cầu một cách cẩn thận.


1
Tôi đã xóa TẤT CẢ các phụ thuộc trong TẤT CẢ build.gradles cho dự án của mình và vẫn gặp lỗi
tuân theo

3
EDIT: Nó được gây ra bởi vương quốc, sử dụng phiên bản cũ hơn
tuân theo

7

https://issuetracker.google.com/issues/72479188 chỉ ra rằng các plugin đôi khi có thể đưa ra các phụ thuộc "biên dịch" và đó là những gì kích hoạt cảnh báo. Có lẽ chỉ dễ dàng nhất để đánh dấu vấn đề đó và đợi cho đến khi họ khắc phục nó để chỉ ra những plugin nào gây ra sự cố.


6

Không cần phải loại bỏ các dòng. Như Jkrevis đã viết, hãy cập nhật com.google.gms: google-services lên 3.2.0 và nó dừng các cảnh báo.


1
Bạn đã thay thế mọi lần xuất hiện của 'biên dịch' bằng 'triển khai' trong bản dựng.gradle (Mô-đun: Ứng dụng) của dự án và cập nhật com.google.gms: google-services trong build.gradle (Project) thành 3.2.0?
Tom

6

Tôi gặp phải vấn đề này mà không sử dụng com.google.gms:google-services. Giải pháp giải quyết vấn đề loại này như sau:

  1. kiểm tra build.gradlecác tập tin của tất cả các dự án và mô-đun. Hoặc chỉ từ khóa tìm kiếm toàn cầu 'biên dịch' để tìm nơi gây ra cảnh báo này.
  2. nếu phương pháp trên không thể giải quyết cảnh báo này, thì hãy sử dụng Lệnh CLI, ./gradlew assembleDebug -d > gradle.log
    in thông tin gỡ lỗi chi tiết vào một tệp có tên gradle.loghoặc bất kỳ tệp nào khác, vì thông tin quá nhiều. Sau đó tìm kiếm từ "CẢNH BÁO" để tìm vị trí trong gradle.log, thông thường bạn có thể tìm thấy sự phụ thuộc hoặc plugin nào gây ra cảnh báo.

2
Tôi nghĩ rằng đây là giải pháp chung. Vấn đề có thể do bất kỳ ai, hoặc một vài người phụ thuộc của bạn gây ra
Rasmusob

5

Trong trường hợp của tôi, đó là do thư viện Realm, sau khi tôi cập nhật lên phiên bản mới nhất (5.1.0 cho đến nay) của Realm, vấn đề đã được giải quyết!

Đây là kịch bản lớp làm việc:

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

Chỉ cập nhật phiên bản dịch vụ google không hoạt động với tôi.

  • Trước tiên hãy đảm bảo tất cả các phụ thuộc của bạn compileđược thay thế bằngimplementation .
  • Cập nhật tất cả các phụ thuộc trong dự án của bạn. Bởi vì nếu một trong những phụ thuộc của bạn đang có compilethì dự án của bạn sẽ hiển thị lỗi này. Vì vậy, cập nhật tất cả các phiên bản phụ thuộc.

2

đi đến tệp build.gradle của bạn ở cấp dự án, bạn sẽ tìm thấy các dòng sau được tô sáng

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

Trong trường hợp của tôi, đó là một phụ thuộc cũ đã sử dụng biên dịch cho các phụ thuộc bắc cầu: com.jakewharton.hugo

Sau khi loại bỏ nó từ lớp của tôi, nó được biên dịch.


1

Cách giải quyết để giải quyết vấn đề này là cho tôi rằng tôi đã sử dụng một phiên bản cũ hơn của Gradle, có thể tìm thấy ở đây :

Tôi đã sử dụng phiên bản gradle-3.0-rc-1-src, nhưng những phiên bản khác cũng có thể hoạt động, mặc dù có lẽ nó không nên mới hơn phiên bản 3.0.

Đầu tiên giải nén tập tin zip đến bất cứ nơi nào bạn muốn.

Sau đó, đi đến Tệp -> Cài đặt -> Xây dựng, Thực thi, Triển khai -> Cấp độ và thay đổi cài đặt để Sử dụng phân phối cấp độ cục bộ. Sau đó, đảm bảo rằng Trường Trang chủ Gradle đang trỏ đến thư mục .gradle trong thư mục bạn vừa giải nén.

Xây dựng lại dự án và mọi thứ sẽ ổn.


0

Tôi đã thử thay đổi dịch vụ google gms thành mới nhất com.google.gms:google-services:3.2.1trong Android Studio 3.0.1 nhưng cảnh báo vẫn còn.

Theo đề xuất của trình biên dịch, tôi đã thay đổi tất cả compilephụ thuộc vào implementationtestCompileđể testImplementationnhư thế này ..

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

Và cuối cùng cảnh báo được gỡ bỏ!


0

Bạn có thể làm hai tùy chọn này:

  1. Thêm classpath 'com.google.gms: google-services: 3.2.0' trong dự án của bạn: build.gradle phụ thuộc và
  2. Thay thế mô-đun của bạn: build.gradle trong sự phụ thuộc từ việc tuân thủ triển khai và bạn sẽ không nhận được bất kỳ thông báo cảnh báo nào.

0

Chỉ cần thêm build.gradletừbuild script

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

và tất cả các phụ thuộc "compile"thay thế để"implementation" .

đã làm việc từ tôi.


Lưu ý rằng nếu bạn đang sử dụng, classpathbạn phải sử dụng nó trong một buildscriptkhối; hơn nữa, người ta không thể sử dụng implementationbên trong một buildscriptkhối.
ChumiestBucket

0

Phiên bản hiện tại là 4.2.0 :

bản dựng {

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

Đối với tôi thay đổi biên dịch để thực hiện sửa nó

Trước

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'

Sau

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

Hy vọng rằng bạn bị ảnh hưởng với build.gradle (ứng dụng) Nếu làm như vậy, hãy làm theo bước này

Thay thế biên dịch bằng androidTestImcellenceation trong build.gradle

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

quá đơn giản ! hy vọng điều này sẽ giải quyết


-3

Trong trường hợp của tôi, vấn đề là plugin lớp dịch vụ của Google với dòng sau trong tệp lớp:

áp dụng plugin: 'com.google.gms.google-services'

Loại bỏ điều này đã giải quyết vấn đề


-7

đi đến bạn build.gradle (cấp ứng dụng)

ứng dụng mô-đun build.gradle

và thay thế từ "biên dịch" bằng "thực hiện"

nó sẽ hoạt động 100%


6
Câu trả lời này không hữu ích. OP đã tuyên bố rằng điều này đã được thực hiện, vì vậy nó không thể giúp được.
NightOwl888

1
tôi có cùng một vấn đề, tôi không thể tạo apk ứng dụng của mình vì điều đó, câu trả lời đó đã giải quyết vấn đề của tôi
Ayoub

Đây không phải là tình huống tương tự, OP đã tuyên bố anh ấy đã làm điều này (tôi cũng ở trong cùng một chiếc thuyền) đó là do sự phụ thuộc
ElliotM

OP cho biết "Tôi đã thay thế mọi lần biên dịch bằng cách thực hiện".
mapo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.