新しい3.0.0 Gradleプラグインで新しいAndroid Studioを使用します。
ビルド中に警告が発生しました:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
新しい3.0.0 Gradleプラグインで新しいAndroid Studioを使用します。
ビルド中に警告が発生しました:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
回答:
私が言えることから、クラスパスの依存関係として追加されたプラグインは問題を引き起こします。つまり、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
今あるimplementation
かapi
が、implementation
推奨一つです。
provided
であるcompileOnly
とapk
されruntimeOnly
androidTestCompile
となってandroidTestImplementation
おり、testCompile
->testImplementation
フレーバーを使用する場合、(ドキュメントでカバーされている)フレーバーディメンションを使用する必要があります。
ビルドタイプの場合、そのビルドタイプを持たないライブラリがある場合に備えて、フォールバックを含める必要があります。これらは、profile
ブロックの下のandroid
ブロックで定義されています。
まだ行っていない場合は、gradleプラグインを最初に定義する必要があります。他にクラスパスの依存関係がない場合は、問題ありません。ただし、そうする場合は、gradleプラグインが最初に定義されていることを確認してください。
を使用する場合は、クラスをtestVariants
呼び出さないでくださいtestedVariant
。スプーンライブラリの原因のようです。
これらは、私が知ることができたことから、問題を修正するために行われた変更の一部です。
PlayサービスのGradleプラグインcom.google.gms:google-services
をバージョンで使用しています4.2.0
。
私にとっては、それが私の警告の理由であり、プラグインが修正されるまで削除できません。問題はこちら
@Zoeで述べたように、これは他のGradleプラグインからも発生する可能性があります。
ベスト
この問題は、Fabric Gradleプラグインの最新バージョンに更新すると修正されます。
変更ログから:
ファブリックを適切にインストールした後、この問題は私のために解決されました
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' }
}
プロジェクトレベルの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'
}
}
私のために解決された問題。
私にとって、ファブリックグラドルプラグインをオフにすると、この警告は消えました。この警告の原因となっているファブリックまたは別のプラグインを使用しているかどうかを確認してください。
com.google.gms:google-services
4.0.1
&4.0.2
両方がこの警告通知を引き起こします。