compile 'com.android.support:support-v4:21.0.3' 表示你引用了support-v4的库,这个库只包含了类,不包含xml布局文件和图片资源
而如果你要在安卓3.0以下使用 ActionBar 的话,你除了需要类,你还需要xml布局文件和图标等等,这个时候你就需要appcompat-v7的库了,于是需要加上
compile 'com.android.support:appcompat-v7:21.0.3'
而Theme.AppCompat.Light.DarkActionBar从命名看你可以知道,这是使用了AppCompat库里面的Theme资源,兼容安卓3.0以下。
Theme.Holo.Light.DarkActionBar 则在安卓3.0以下会Crash,找不到这个资源和类
当minSdkVersion<11(Android 3.0)时,应该导入support-v4和appcompat-v7,并使用Theme.AppCompat.Light.DarkActionBar;如果minSdkVersion>=11,可以直接使用Theme.Holo.Light.DarkActionBar。
PS:appcompat-v7依赖support-v4,同时两者版本必须一致。(打开appcompat-v7工程,会发现里面只有资源文件,没有任何java类的。。)
更加详细的解释:(转自知乎) http://stormzhang.com/android/2015/03/29/android-support-library/
链接:http://www.zhihu.com/question/28865999/answer/42391939
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。