RegisterResGeneratingTaskは非推奨です。registerGeneratedFolders(FileCollection)を使用してください


158

新しい3.0.0 Gradleプラグインで新しいAndroid Studioを使用します。
ビルド中に警告が発生しました:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)

1
Gradleタスクを表示できますか?APKの分割はありますか?
itzhar

Gradleを見せてください
–Jéwôm '2017

正確な問題(既知の問題)と回避策を説明するこの記事を見ましたか?(Googleでの最初のヒット。)
ashleedawg 2017年

@ashleedawgどうしたらいいですか?Android Studioを更新しますか?またはいくつかのライブラリ?
Valentin Baryshev 2017年

4
@ashleedawgあなたが言及する回避策は、私がそれを誤解しない限り、gradleプラグインの古いバージョンを使い続けることです。これは長期的に非推奨を処理する方法ではありません。短期的には、警告を<s>無視</ s>できますが、すぐに対処する必要はありません。
Alex Cohn

回答:


46

私が言えることから、クラスパスの依存関係として追加されたプラグインは問題を引き起こします。つまり、Firebaseに問題がありました。スプーンフラッターも。やってこのGoogle検索すると、同じものを調達問題とGitHubのレポの多くを明らかにし、彼らは共通しているすべては、それがGradleのプラグインだという事実です。Mateが述べたように、ファブリックも原因のようです*

私が知ることができることから、問題は/複数のGradleプラグインに起因しています。また、Gradleコードによってトリガーすることもできますが、プロジェクトがGradleプラグインではなくアプリの場合、これはおそらく適用されません。

そして、コメントでアレックス・コーンによって言及されたように、廃止は警告です。この場合、それは最終的に削除される機能であることを意味します。したがって、今のところ、それがプラグインである(そしてあなたが作成したものではない)と仮定すると、無視することができます。それが削除されるまでに、主要なプラグインのほとんど/すべてを修正して修正する必要があります。

そして再び、それは警告です。エラーではありません。あなたはまだそれを実行することができ、問題についてあなたが何もすることができないならそれを無視することができます。たとえば、Fabric *プラグインを無効にしても、機能するため、やりすぎです。

私は自分でファブリックを使用しておらず、ファブリックはオープンソースではないため、開発者が修正したかどうかはわかりません

TL; DR: Gradleプラグインが原因です。これは警告であり(エラーではありません)、問題の原因となっているプラ​​グインを削除するのはやりすぎです。修正できない場合は、現時点で非推奨になっている(削除されていない)限り、そのままにしてください。


Firebaseを使用する場合は、移行ガイド(この投稿の後半にリンクされています)にも記載されている特定のソリューションがあります。guavaモジュールを除外する

classpath ('com.google.firebase:firebase-plugins:1.1.0') {
    exclude group: 'com.google.guava', module: 'guava-jdk5'
}

問題自体を検出するのはかなり困難です。私が知ることができることから、私がチェックした(そしてこの回答にリンクされた)すべてのプラグインでそれを引き起こす単一の問題はありません。問題の原因となる何かをコーディングした場合(そしてそれを修正することは可能です。サードパーティのGradleプラグインを追加しても問題は発生しません)、それを修正しようとすることができるいくつかのことがあります。

実際の原因について私が知ることができることからTestVariant、Gradleプラグイン3.0.0移行ガイドのトピックに従って、Gradleファイルを更新することで解決されます(スプーンライブラリでは、に関連する行を変更することで修正されました)。

すべては開発者ドキュメントでカバーされていますが、問題が発生しているプロジェクトで行われたプルリクエストに基づいて私が関連すると私が思うもののいくつかを以下に示します。

Gradleのバージョンとプラグインを更新する以外に、google()下にリポジトリを追加する必要もありますrepositories

compile今あるimplementationapiが、implementation推奨一つです。

providedであるcompileOnlyapkされruntimeOnly

androidTestCompileとなってandroidTestImplementationおり、testCompile->testImplementation

フレーバーを使用する場合、(ドキュメントでカバーされている)フレーバーディメンションを使用する必要があります。

ビルドタイプの場合、そのビルドタイプを持たないライブラリがある場合に備えて、フォールバックを含める必要があります。これらは、profileブロックの下のandroidブロックで定義されています。

まだ行っていない場合は、gradleプラグインを最初に定義する必要があります。他にクラスパスの依存関係がない場合は、問題ありません。ただし、そうする場合は、gradleプラグインが最初に定義されていることを確認してください。

を使用する場合は、クラスをtestVariants呼び出さないでくださいtestedVariant。スプーンライブラリの原因のようです。

これらは、私が知ることができたことから、問題を修正するために行われた変更の一部です。


しかし、エラーを示すコード行をデバッグできません
Abhinav Gupta

失敗:ビルドは例外で失敗しました。*問題点:タスク ':app:compileDebugJavaWithJavac'の実行が失敗しました。>コンパイルに失敗しました。詳細については、コンパイラエラー出力を参照してください。*試してください:--stacktraceオプションを指定して実行し、スタックトレースを取得します。--infoまたは--debugオプションを指定して実行し、より多くのログ出力を取得します。完全な洞察を得るために--scanを付けて実行します。* help.gradle.orgでさらにヘルプを取得 4秒で構築に失敗29の実用的なタスク:2が実行され、27が最新
Abhinav Gupta

スタックトレースではない@AbhinavGupta。これは、問題が発生したことを知らせるメッセージにすぎません
Zoe

しかし、これを解決することができず、この原因を私は自分のデバイスにapkをインストールできません
Abhinav Gupta '29

@AbhinavGuptaスタックオーバーフローで新しい質問をする
Zoe

17

PlayサービスのGradleプラグインcom.google.gms:google-servicesをバージョンで使用しています4.2.0

ソースコードでそれを見ることができます: ここに画像の説明を入力してください

私にとっては、それが私の警告の理由であり、プラグインが修正されるまで削除できません。問題はこちら

@Zoeで述べたように、これは他のGradleプラグインからも発生する可能性があります。

ベスト



10

この問題は、Fabric Gradleプラグインの最新バージョンに更新すると修正されます。

変更ログから:

  • 「registerResGeneratingTask」の非推奨警告を修正しました。

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


正確には何ですか?アップグレードする価値はありますか?(更新の前後に)問題が発生しますか?私たちはv2.6.8を使用していますが、現在はv2.9.3が使用されていますが、変更ログで確認する方法がわかりません。そこには異なるバージョンがあります(たとえば、「2018年5月24日1.4.2」)
Android開発者

@androiddeveloper Fabric GradleプラグインとCrashlyticsを混同している。左側のメニューでさまざまなコンポーネントを確認してください。
Eugen Pechanec

4

私の場合、これはAndroidサポートライブラリのバージョンの不一致が原因でした。すべてのモジュールを最新バージョン(28.0.0)に更新し、それで解決しました。


1

ファブリックを適切にインストールした後、この問題は私のために解決されました

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());

    }
}

build.gradle

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

私はこのエラーメッセージと他の多くが好きでした

x-version is deprecated and use y-version instead and it'll be removed in 2019

そして私のプロジェクトのすべてが突然同じエラーメッセージを出し始めました。

Androidスタジオが私のウイルス対策プログラムに関する警告を出していました。設定してみましたがうまくいきませんでした。

最後に、システムからQuickHealアンチウイルスをアンインストールしましたが、すべて順調です


0

他のすべての答えは、サードパーティのコンポーネントの問題に関するものです

を使用するプロジェクトを更新する方法は次のとおりですregisterResGeneratingTask直接する次のとおりです。

前:

variant.registerResGeneratingTask generateIcon, ICON_DIR

後:

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

0

プロジェクトレベルのBuild.Gradle

次のバージョンのGoogleサービスの依存関係を使用します。

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

私のために解決された問題。


-2

私にとって、ファブリックグラドルプラグインをオフにすると、この警告は消えました。この警告の原因となっているファブリックまたは別のプラグインを使用しているかどうかを確認してください。


ファブリックを取り外しましたが、それでもこの警告が表示されます。
Valentin Baryshev 2017年

私は生地を使用していないので、このメッセージがあります!
thiagolr 2017年

3
プラグインio.fabricを無効にすると、これらの警告のうち8つが4つに減りました。したがって、複数のソースがあるようです。
Mario Huizinga

4
com.google.gms:google-services 4.0.14.0.2両方がこの警告通知を引き起こします。
Martin Zeitler、2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.