Android(安卓)Studio修改项目编译版本
首发在知乎:
Android Studio 使用如何低版本appcompat-v7? - 回答作者: LiLi
如果大家觉得有所帮助,欢迎点赞关注^_^
在Android Studio中创建项目时在gradle中会自动引入
compile 'com.android.support:appcompat-v7:24.0.0'
当引入appcompat-v7时,编译版本至少要在21(5.0)以上时才可以通过。
但是有一些项目需要用到稍低版本的sdk,于是我在gradle中改低compile sdk version(eg:改到19)时,compile appcompat-v7会报错,提示与compile sdk version不一致。
然后自己试着修改到一致的版本时,报错会消失,但是会出一行新的提示:当min target version>=14且compile sdk version<=19时,这个包是不需要的,于是删除这个compile,重新sync,这时会报出一些奇怪的样式引用错误。
跳转查看详情,发现是一些styles引用了appcompat的内容
在manifest文件中有一句引用
android:theme="@style/AppTheme"
也就是theme
<resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary - "colorPrimaryDark"
>@color/colorPrimaryDark - "colorAccent">@color/colorAccent
style>resources>
这个theme是在values的styles文件中继承父theme,而这个父theme就是引用的appcompat包中的theme,于是我们把这个theme修改成系统自带的theme,例如android:Theme.Light。然后删掉之前生成的customize的内容,最好修改一下style的name属性,与以前不同就可以
<resources> <style name="BaseTheme" parent="android:Theme.Light">-- Customize your theme here. --> style>resources>
然后在manifest文件中修改引用
android:theme="@style/BaseTheme"
同时要修改activity继承,将默认继承的AppCompatActivity修改为activity
public class MainActivity extends AppCompatActivity
改成
public class MainActivity extends Activity
这样再clean一下,就可以编译通过了。
=============================补充一下==========================
可以用较高版本的build tools去适配较低版本的compile sdk的,比如
compileSdkVersion 19 buildToolsVersion "24.0.0"
这都是没有问题的
更多相关文章
- Android(安卓)Studio的各种冷知识,黑科技
- Android(安卓)2.3 CTS测试修改测试结果和调试方法
- Android(安卓)碎片化 适配问题
- Android根据Url显示gif类型图片
- 全志A40i Android7永不休眠及不锁屏的修改方法
- Android中部分修改字体和全局修改字体的方法
- Android(安卓)Studio gradle 使用最新版本的 xstream:1.4.8 出错
- Android实际开发中遇到的问题和部分解决方案
- eclipse查看android源码包(eclipse导入android源码包)