最近Android Studio 3.1にアップグレードしましたが、同時にAndroid Pプレビューを試しています。
コンパイル時に次のエラーが表示されます。
Com.Android.supportライブラリはすべて、まったく同じバージョン仕様を使用する必要があります(バージョンを混在させるとランタイムがクラッシュする可能性があります)。バージョン28.0.0-alpha1、26.1.0が見つかりました。例には、com.Android.support:animated-vector-drawable:28.0.0-alpha1およびcom.Android.support:support-media-compat:26.1.0 less ...(Ctrl + F1)ライブラリのいくつかの組み合わせがあります、または互換性のないツールやライブラリ、またはバグを引き起こす可能性のあるツールやライブラリ。このような非互換性の1つは、最新バージョンではないAndroidサポートライブラリのバージョン(特に、targetSdkVersionよりも低いバージョン)でコンパイルすることです。
しかし、26.1.0
のインスタンスはどこにも表示されません。私が私のグラドルに持っているのは次のとおりです:
implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.Android.support:design:28.0.0-alpha1'
キャッシュのクリア、アプリの再構築などを試みましたが、エラーが残ります。
競合するライブラリを依存関係ブロックに追加して、競合するライブラリをオーバーライドする必要があります
dependencies {
implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.Android.support:customtabs:28.0.0-alpha1'
implementation 'com.Android.support:support-vector-drawable:28.0.0-alpha1'
implementation 'com.Android.support:support-media-compat:28.0.0-alpha1'
implementation 'com.Android.support:support-v4:28.0.0-alpha1'
上記の警告は、メディア互換性の依存関係に固有のものではありません。問題を説明するための例を追加しました。この問題は、v4 libを追加することで解決します。
implementation 'com.Android.support:support-v4:28.0.0'
に加えて
implementation 'com.Android.support:appcompat-v7:28.0.0'
含める必要はありません
implementation 'com.Android.support:animated-vector-drawable:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
競合するライブラリを依存関係ブロックに追加して、競合するライブラリをオーバーライドする必要があります。たとえば、エラーログから次のことがわかります。
バージョン28.0.0-alpha1、26.1.0が見つかりました。例には、com.Android.support:animated-vector-drawable:28.0.0-alpha1およびcom.Android.support:support-media-compat:26.1.0 less ...が含まれます。
次のようなライブラリを追加して、エラーを削除できます。
dependencies {
implementation 'com.Android.support:animated-vector-drawable:28.0.0-alpha1`
implementation 'com.Android.support:support-media-compat:28.0.0-alpha1`
}
firebaseにアプリを接続すると、このエラーが発生しました。
何も追加する必要はありません。
エラー行(1つ下)にマウスカーソルを置き、Alt + Enterを押すだけです。
(implementation 'com.Android.support:appcompat-v7:28.0.0')
リストに最初のオプションを入力します。(検査なし)
その後、このようになります、
//noinspection GradleCompatible implementation 'com.Android.support:appcompat-v7:28.0.0'
いくつかの依存関係-おそらくplayLicensing-は、少なくともsupport-media-compat
(バージョン26.1.0
)に対して推移的な依存関係を持っています。
これを回避するには:
28.0.0-alpha1
よりも古い「外部ライブラリ」に表示される各サポートライブラリアーティファクトを特定します。エラーに基づいて、それらの古いものはすべて26.1.0
である必要があり、少なくともsupport-media-compat
になります。
これらのそれぞれについて、独自のimplementation
行を依存関係に追加し、そのアーティファクトを要求しますが、28.0.0-alpha1
は必要です。これにより、Gradleは新しいアーティファクトを使用するようになります。
それらの古いアーティファクトに依存しているものはすべて、新しいアーティファクトとともに生き残ることを願っています。
したがって、少なくとも、次のものを追加します。
implementation 'com.Android.support:support-media-compat:28.0.0-alpha1'
私の場合、エラー行の下にこれを追加して解決しました。
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
build.grad(Module.app)の依存関係を追加します。
dependencies {
//noinspection GradleCompatible
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:animated-vector-drawable:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
}
私の場合、support-v4を追加すると、警告を失います。
dependencies {
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:animated-vector-drawable:28.0.0'
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
// other dependencies
}
//競合するライブラリをオーバーライドします
実装 'com.Android.support:support-v4:28.0.0-alpha1'
実装 'com.Android.support:animated-vector-drawable:28.0.0-alpha1'
実装 'com.Android.support:exifinterface:28.0.0-alpha1'
あなたのgradleファイルには以下の依存関係があると思います。これをアプリレベルのbuild.gradleに追加します。
implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.Android.support:mediarouter-v7:28.0.0-alpha1'
implementation 'com.Android.support:support-vector-drawable:28.0.0-alpha1'
implementation 'com.Android.support:support-v4:28.0.0-alpha1'
プロジェクトでファイアベースを使用していますか? firebaseコアまたはfirebaseアプリのインデックス作成を使用すると、問題が発生するようです。私は同じ問題を抱えていましたが、firebaseパッケージにコメントするとエラーが消えます
// implementation 'com.google.firebase:firebase-core:16.0.8'
// implementation 'com.google.firebase:firebase-ads:17.2.0'
// implementation 'com.google.firebase:firebase-appindexing:17.1.0'
シンプルで簡単な解決策は、Androidサポートの競合するバージョンを手動で追加することです。
バージョンを混在させるとランタイムがクラッシュする可能性があります
問題を追跡して解決してください。
gradleスクリプトに移動し、依存関係セクションでgradle(Module:app)をビルドし、競合するバージョンを実装して簡単にリンクに移動します。
実装中にスペースがないことを確認してください。
implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
リンクをたどることができます。