我在用appcompatactivity还有其他一些东西,比如碎片等等…以下是我活动的一些导入:
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;
我从google上复制了这些依赖关系:
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'
删除它们,我的项目工作得很好…为什么?
我用这个编译:
compileSdkVersion 23
buildToolsVersion "23.0.3"
minSdkVersion 14
targetSdkVersion 22
最佳答案
支持设计库本身依赖于appcompat-v7和support-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 (*)
在
build.gradle
文件中显式声明这些依赖项仍然被认为是good practice(解释链接的答案):如果您的项目直接依赖于“b”,那么您应该将“b”声明为显式依赖,即使“b”是其他显式依赖“a”的传递依赖。“a”的未来版本可能不再依赖于“b”,更新到其中一个“a”版本将破坏您的构建。