3

私はAppCompatActivityを使用していますし、断片などのようないくつかのより多くの事が...これらは私の活動の輸入品の一部です:私は、Googleのサンプルからこれらの依存関係をcopyedsupport-v4とappcompat-v7をインポートするには、それらを使用する必要がありますか?

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.view.ViewPager; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 

dependencies { 
    compile 'com.google.android.gms:play-services-ads:9.4.0' 
    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
} 

今、私はそれらを削除しようとしていると私は、私はこれらを削除することができていることに気づいた:それらを削除する

compile 'com.android.support:support-v4:23.1.1' 
compile 'com.android.support:appcompat-v7:23.4.0' 

、私のPR ojectは完璧に動作します...なぜですか?

私はこれをコンパイルしています:

compileSdkVersion 23 
buildToolsVersion "23.0.3" 
minSdkVersion 14 
targetSdkVersion 22 

答えて

7

支援設計ライブラリ自体はAPPCOMPAT-V7およびサポート-v4のライブラリに依存します。したがって、削除した明示的な依存関係は、推移的な依存関係として自動的に取り込まれます。 ./gradlew app:dependenciesを実行すると、これを確認:

_releaseCompile - ## Internal use, do not manually configure ## 
+--- com.android.support:design:23.4.0 
| +--- com.android.support:recyclerview-v7:23.4.0 
| | +--- com.android.support:support-annotations:23.4.0 -> 24.0.0 
| | \--- com.android.support:support-v4:23.4.0 -> 24.0.0 (*) 
| +--- com.android.support:appcompat-v7:23.4.0 -> 24.0.0 
| | +--- com.android.support:support-v4:24.0.0 (*) 
| | +--- com.android.support:support-vector-drawable:24.0.0 
| | | \--- com.android.support:support-v4:24.0.0 (*) 
| | \--- com.android.support:animated-vector-drawable:24.0.0 
| |   \--- com.android.support:support-vector-drawable:24.0.0 (*) 
| \--- com.android.support:support-v4:23.4.0 -> 24.0.0 (*) 

まだ一般的good practiceが明示的にあなたのbuild.gradleファイル(リンクの答えを言い換え)にこれらの依存関係を宣言すると考えられています:あなたのプロジェクトは、「上直接依存関係を持っている場合

B "であれば、" B "が他の明示的依存" A "の推移的依存性であっても、明示的依存として" B "を宣言するべきです。 "A"の将来のバージョンは "B"に依存しなくなり、これらのバージョンの "A"にアップデートするとビルドが中断されます。

関連する問題