Sử dụng studio android mới với cách cắm Gradle 3.0.0 mới.
Khi xây dựng một số cảnh báo đã xảy ra:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Sử dụng studio android mới với cách cắm Gradle 3.0.0 mới.
Khi xây dựng một số cảnh báo đã xảy ra:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Câu trả lời:
Từ những gì tôi có thể nói, các plugin được thêm dưới dạng phụ thuộc classpath sẽ gây ra vấn đề. Tức là Firebase có vấn đề với nó. Muỗng và Flutter là tốt. Thực hiện tìm kiếm này của Google cho thấy rất nhiều repos GitHub với một vấn đề được nêu lên trên cùng một điều, và tất cả những gì họ có chung là thực tế đó là một plugin Gradle. Vải dường như cũng là một nguyên nhân, như được đề cập bởi Mate *
Từ những gì tôi có thể nói, vấn đề xuất phát từ một / nhiều plugin Gradle. Nó cũng có thể được kích hoạt bởi mã Gradle của bạn, nhưng điều này rất có thể không áp dụng được nếu dự án của bạn là một ứng dụng chứ không phải plugin Gradle.
Và như Alex Cohn đã đề cập trong một bình luận, sự phản đối là một cảnh báo. Trong trường hợp này, điều đó có nghĩa là đó là một tính năng sẽ bị xóa cuối cùng. Vì vậy, bây giờ, giả sử nó là một plugin (và không phải do bạn tạo ra), bạn có thể bỏ qua nó. Vào thời điểm nó bị xóa, hầu hết / tất cả các plugin chính sẽ được cập nhật để sửa nó.
Và, một lần nữa, nó là một cảnh báo; không có lỗi Bạn vẫn có thể chạy nó và bỏ qua nó nếu không có gì bạn có thể làm về vấn đề này. Vô hiệu hóa, ví dụ như plugin Fabric * là quá mức cần thiết, vì nó vẫn hoạt động.
Bản thân tôi không sử dụng Fabric và Fabric không phải là nguồn mở, vì vậy tôi không biết liệu các nhà phát triển có sửa nó hay không
TL; DR: Các plugin cấp độ là nguyên nhân. Đó là một cảnh báo (không phải là lỗi), vì vậy việc loại bỏ các plugin gây ra sự cố là quá mức cần thiết. Nếu bạn không thể sửa nó, hãy để nó một mình miễn là nó không còn được sử dụng tại thời điểm này (không được gỡ bỏ)
Nếu bạn sử dụng Firebase, có một giải pháp cụ thể cho giải pháp đó cũng được đề cập trong hướng dẫn di chuyển (được liên kết sau trong bài đăng này); loại trừ mô-đun ổi
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Vấn đề bản thân nó khá khó phát hiện. Từ những gì tôi có thể nói, không có vấn đề nào gây ra nó trong tất cả các plugin tôi đã kiểm tra (và được liên kết trong câu trả lời này). Nếu bạn đã mã hóa thứ gì đó gây ra sự cố (và có thể khắc phục được; thêm plugin lớp thứ ba không gây ra sự cố), có một số điều bạn có thể thử khắc phục.
Từ những gì tôi có thể nói về nguyên nhân thực tế, nó đã được giải quyết bằng cách cập nhật tệp Gradle (mặc dù trong thư viện Spoon, nó đã được sửa bằng cách thay đổi một dòng liên quan đến TestVariant
) bằng cách làm theo các chủ đề trong hướng dẫn di chuyển Gradle plugin 3.0.0.
Toàn bộ nội dung được bao phủ bởi các tài liệu dành cho nhà phát triển , nhưng đây là một số nội dung tôi nghĩ có liên quan dựa trên các yêu cầu kéo được thực hiện trên các dự án có vấn đề:
Bên cạnh việc cập nhật phiên bản Gradle và plugin, bạn cũng cần thêm google()
repo bên dưới repositories
.
compile
bây giờ implementation
hoặc api
, nhưng implementation
là một đề nghị.
provided
đang compileOnly
và apk
làruntimeOnly
androidTestCompile
đã trở thành androidTestImplementation
, và testCompile
->testImplementation
Nếu bạn sử dụng hương vị, bạn phải sử dụng kích thước hương vị (được bao phủ bởi các tài liệu).
Đối với các loại bản dựng, bạn phải bao gồm các bản dự phòng trong trường hợp có một thư viện không có loại bản dựng đó. Chúng được xác định trong profile
khối dưới android
khối.
Nếu chưa được thực hiện, plugin gradle phải được xác định trước. Nếu bạn không có bất kỳ phụ thuộc classpath nào khác, thì đó không phải là vấn đề. Nhưng nếu bạn làm như vậy, hãy chắc chắn rằng plugin gradle được xác định trước.
Nếu bạn sử dụng testVariants
, hãy chắc chắn rằng bạn không gọi testedVariant
trong lớp. Nó dường như là nguyên nhân cho thư viện Spoon.
Những điều này, từ những gì tôi có thể nói, một số thay đổi đã được thực hiện để khắc phục vấn đề.
Tôi đang sử dụng plugin Gradle dịch vụ Play com.google.gms:google-services
với phiên bản 4.2.0
.
Trong mã nguồn chúng ta có thể thấy rằng:
Vì vậy, đối với tôi, đó là lý do cảnh báo của tôi và không thể xóa được cho đến khi plugin được sửa. Vấn đề là ở đây
Như được đề cập bởi @Zoe, điều này cũng có thể đến từ các Plugin Gradle khác.
Tốt
Vấn đề được giải quyết với Plugin Dịch vụ Google Phiên bản 4.3.0 (Đã giải quyết với cam kết này )
buildscript {
dependencies {
// Change version to 4.3.0
classpath 'com.google.gms:google-services:4.3.0'
}
}
Tìm thấy ở đây
Cập nhật lên phiên bản mới nhất của Plugin Fabric Gradle khắc phục sự cố này.
Từ thay đổi:
Trong trường hợp của tôi, điều này là do phiên bản không khớp của các thư viện hỗ trợ Android. Tôi đã cập nhật tất cả các mô-đun lên phiên bản mới nhất (28.0.0) và điều đó đã giải quyết nó.
Sau khi cài đặt Fabric đúng cách, vấn đề này đã được giải quyết cho tôi
import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
}
xây dựng. nâng cấp
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
dependencies {
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
Tôi đã có thông báo lỗi này và rất nhiều người khác thích
x-version is deprecated and use y-version instead and it'll be removed in 2019
và tất cả các dự án của tôi bắt đầu đưa ra các thông báo lỗi tương tự.
Studio Android đã đưa ra cảnh báo về chương trình chống vi-rút của tôi. Tôi đã thử cấu hình nó nhưng không hoạt động.
Cuối cùng tôi đã gỡ cài đặt phần mềm chống vi-rút QuickHeal khỏi hệ thống của mình và tất cả đều ổn
Tất cả các câu trả lời khác là về các vấn đề với các thành phần của bên thứ ba .
Dưới đây là làm thế nào để cập nhật của bạn dự án có sử dụng registerResGeneratingTask
trực tiếp:
Trước:
variant.registerResGeneratingTask generateIcon, ICON_DIR
Sau:
variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
Cấp độ dự án Build.Gradle
Sử dụng phiên bản sau của dịch vụ google phụ thuộc.
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.google.gms:google-services:4.3.0'
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
}
Giải quyết vấn đề cho tôi.
Đối với tôi, cảnh báo này đã biến mất khi tôi tắt plugin vải lớp, o vui lòng kiểm tra xem bạn có sử dụng vải hoặc plugin khác mà tôi chịu trách nhiệm cho cảnh báo này không.
com.google.gms:google-services
4.0.1
& 4.0.2
cả hai gây ra thông báo cảnh báo này.