2016-03-23 13 views
1

私は2つのモジュールを持つAndroidプロジェクトを持っています。このアプリをGoogle Playに公開しました。今日、私は、これらの2つのモジュールが、(Google Playの現在制作されているバージョンの)グラデルファイルに異なるサポートライブラリバージョンの依存関係を使用していることがわかりました。同じアンドロイドプロジェクトの2つのアンドロイドモジュールでサポートライブラリのバージョンが異なる場合はどうなりますか?

アプリモジュールでサポートライブラリのバージョンが異なると、予期しない問題が発生する可能性がありますか?

答えて

4

バージョンの競合がある場合、gradleは自動的に最高のバージョンを選択します。ライブラリモジュール 'mylibrary'を含むappプロジェクト 'app'を想像してみてください。私はcompat libバージョンを 'app'では23.2.1に、 'mylibrary'では23.2.0に設定しました。 1が最後に選択します./gradlew :app:dependencies番組の出力:

_debugCompile - ## Internal use, do not manually configure ## 
+--- com.android.support:appcompat-v7:23.2.1 
| +--- com.android.support:support-v4:23.2.1 
| | \--- com.android.support:support-annotations:23.2.1 
| +--- com.android.support:animated-vector-drawable:23.2.1 
| | \--- com.android.support:support-vector-drawable:23.2.1 
| |   \--- com.android.support:support-v4:23.2.1 (*) 
| \--- com.android.support:support-vector-drawable:23.2.1 (*) 
+--- com.android.support:recyclerview-v7:23.2.1 
| +--- com.android.support:support-v4:23.2.1 (*) 
| \--- com.android.support:support-annotations:23.2.1 
+--- com.android.support:design:23.2.1 
| +--- com.android.support:support-v4:23.2.1 (*) 
| +--- com.android.support:appcompat-v7:23.2.1 (*) 
| \--- com.android.support:recyclerview-v7:23.2.1 (*) 
+--- com.android.support:percent:23.2.1 
| \--- com.android.support:support-v4:23.2.1 (*) 
\--- project :mylibrary 
    \--- com.android.support:appcompat-v7:23.2.0 -> 23.2.1 (*) 

お知らせてMyLibraryのためのcompatのlibには、23.2.0から23.2.1までにアップグレードされます非常に最後の行。これは、同じグループと名前のコンポーネントを持つライブラリで発生します。

はい、このようにバージョンがアップグレードされると問題が発生する可能性があります。ライブラリの変更されたバージョンが以前のバージョンと下位互換性がない場合、古いバージョンを参照するコードは、欠落したメソッドでコンパイルできないことがあります。マイクロおよびマイナーバージョンのアップデートでは、これは通常問題ではありませんが、メジャーバージョンのアップデートでは問題ありません。特定の状況に完全に依存します。

関連する問題