web-dev-qa-db-ja.com

Android St​​udio 3.1:バージョンを混在させるとランタイムがクラッシュする可能性があります

最近Android St​​udio 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'

キャッシュのクリア、アプリの再構築などを試みましたが、エラーが残ります。

16
drmrbrewer

競合するライブラリを依存関係ブロックに追加して、競合するライブラリをオーバーライドする必要があります

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'
45
Mohamed Fares

上記の警告は、メディア互換性の依存関係に固有のものではありません。問題を説明するための例を追加しました。この問題は、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'
15
Ganesh Kanna

競合するライブラリを依存関係ブロックに追加して、競合するライブラリをオーバーライドする必要があります。たとえば、エラーログから次のことがわかります。

バージョン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'
3
CommonsWare

私の場合、エラー行の下にこれを追加して解決しました。

implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'
2
user11587781

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'
}
2
Bacar Pereira

私の場合、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
}
1
chinnuabhi

//競合するライブラリをオーバーライドします

実装 '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'

1
Mustofa Kamal

あなたの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'
0

プロジェクトでファイアベースを使用していますか? 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'
0
Michael

シンプルで簡単な解決策は、Androidサポートの競合するバージョンを手動で追加することです。

バージョンを混在させるとランタイムがクラッシュする可能性があります

問題を追跡して解決してください。

gradleスクリプトに移動し、依存関係セクションでgradle(Module:app)をビルドし、競合するバージョンを実装して簡単にリンクに移動します。

実装中にスペースがないことを確認してください。

implementation 'com.Android.support:support-media-compat:28.0.0'
implementation 'com.Android.support:support-v4:28.0.0'

リンクをたどることができます。

0
Muhammad Ali