RegisterResGeneratingTask không được dùng nữa, hãy sử dụng registerGeneratedFolders (FileCollection)


158

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)

1
bạn có thể hiển thị nhiệm vụ lớp của bạn? Bạn có chia apk không?
itzhar

vui lòng hiển thị Gradle của bạn
Jéwôm '

Bạn đã thấy bài viết này mô tả chính xác vấn đề (một vấn đề đã biết) và cách giải quyết chưa? (Lần truy cập đầu tiên trên Google.)
ashleedawg

@ashleedawg tôi nên làm gì? Cập nhật studio android? hoặc một số thư viện?
Valentin Baryshev

4
@ashleedawg cách giải quyết mà bạn đề cập là, trừ khi tôi hiểu nhầm, để ở lại với phiên bản cũ hơn của plugin gradle. Đây không phải là một cách để xử lý sự phản đối trong thời gian dài. Trong thời gian ngắn, cảnh báo có thể được <s> bỏ qua </ s>, nhưng không cần hành động ngay lập tức.
Alex Cohn

Câu trả lời:


46

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ỗngFlutter 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.

compilebây giờ implementationhoặc api, nhưng implementationlà một đề nghị.

providedđang compileOnlyapkruntimeOnly

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 profilekhối dưới androidkhố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 testedVarianttrong 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 đề.


Nhưng tôi không thể gỡ lỗi dòng mã, nó hiển thị lỗi
Abhinav Gupta

FAILURE: Build thất bại với một ngoại lệ. * Điều gì đã sai: Thực thi không thành công cho nhiệm vụ ': app: compileDebugJavaWithJavac'. > Biên dịch thất bại; xem đầu ra lỗi trình biên dịch để biết chi tiết. * Thử: Chạy với tùy chọn --stacktrace để lấy dấu vết ngăn xếp. Chạy với tùy chọn --info hoặc --debug để có thêm đầu ra nhật ký. Chạy với --scan để có được thông tin chi tiết đầy đủ. * Nhận thêm trợ giúp tại help.gradle.org BUILD FAILED trong 4s 29 nhiệm vụ có thể thực hiện: 2 thực hiện, 27 cập nhật
Abhinav Gupta

@AbhinavGupta đó không phải là stacktrace. Đó chỉ là một thông báo cho bạn biết có gì đó không ổn
Zoe

nhưng tôi không thể giải quyết vấn đề này và vì lý do này, tôi không thể cài đặt apk trong thiết bị của mình
Abhinav Gupta

@AbhinavGupta vì vậy hãy đặt câu hỏi mới về Stack Overflow
Zoe

17

Tôi đang sử dụng plugin Gradle dịch vụ Play com.google.gms:google-servicesvới phiên bản 4.2.0.

Trong mã nguồn chúng ta có thể thấy rằng: nhập mô tả hình ảnh ở đây

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


15

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


10

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:

  • Đã sửa lỗi Đăng kýResGeneratingTask Cảnh báo khấu hao.

https://docs.foven.io/android/changelog.html#march-15-2018


Chính xác thì nó là gì? Có đáng để nâng cấp không? Nó có gây ra bất kỳ vấn đề nào (trước và sau khi cập nhật) không? Chúng tôi sử dụng v2.6.8 và bây giờ họ có v2.9.3, nhưng tôi không thấy cách xem nó trong thay đổi. Họ có các phiên bản khác nhau ở đó (ví dụ: "1.4.2 ngày 24 tháng 5 năm 2018")
nhà phát triển Android

@androiddeveloper Bạn đang nhầm lẫn Plugin vải Gradle và Crashlytics. Kiểm tra các thành phần khác nhau trong menu bên trái.
Eugen Pechanec

4

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ó.


1

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

1

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


0

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 registerResGeneratingTasktrực tiếp:

Trước:

variant.registerResGeneratingTask generateIcon, ICON_DIR

Sau:

variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)

0

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.


-2

Đố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.


Loại bỏ vải, nhưng vẫn cảnh báo này xuất hiện.
Valentin Baryshev

Tôi không sử dụng vải và tôi có tin nhắn này!
thiagolr

3
Vô hiệu hóa plugin io.foven đã giảm 8 trong số các cảnh báo này xuống còn 4. Vì vậy, có vẻ như có nhiều hơn một nguồn.
Mario Huizinga

4
com.google.gms:google-services 4.0.1& 4.0.2cả hai gây ra thông báo cảnh báo này.
Martin Zeitler
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.