问题原因出在Gradle里面
android {
compileSdkVersion = 23
targetSdkVersion = 22
minSdkVersion = 17
buildToolsVersion = '25.0.2'
}
dependencies {
//省略其他
compile 'com.android.support:design:25.3.1'
//省略其他
}
- 问题的原因是support:design包的版本与项目编译的版本compileSdkVersion不一致
解决办法
将compileSdkVersion调整与support:design包一致,compileSdkVersion = 25即可
minSdkVersion、 targetSdkVersion和compileSdkVersion
- minSdkVersion比较好理解,就是限制最小的可安装版本,比如设置了minSdkVersion为17,那对应手机系统是Android4.2,也就是说比Android4.2系统版本还要低的手机将无法安装你的应用
- compileSdkVersion也比较好理解,就是你项目编译时候用的SDK版本,compileSdkVersion设置成最新的可以使用最新的特性
- targetSdkVersion这个有点不好理解,就是兼容的目标版本,比如targetSdkVersion设置为22,对应的手机系统版本是Android5.1。这得分2种情况:
- 用户手机的系统版本比Android5.1版本高,如果App中用到了更改过的API,那么系统会向下兼容,仍然按照Android5.1版本的API来
- 如果用户的系统版本比Android5.1低,且你的App用到了高本版才有的API,而又没有做特殊处理,那么App就会报错,甚至奔溃。
- 我们在开发App的过程中,如果用到了高版本才有的API,Android Studio的代码提示工具就会出现警告,我们就需要做特殊处理了
其他
android.support:design是Google推出的Material Design相关的支持库,里面提供了规范的MD设计风格的控件,而且一直兼容到Android 2.2。
欢迎关注我的微信公众号,期待与你一起学习,一起交流,一起成长!
AntDream
网友评论