Android Studio修改项目编译版本

来源:互联网 发布:西装裤配什么鞋子知乎 编辑:程序博客网 时间:2024/05/19 07:26

首发在知乎:
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><!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>    </style></resources>

这个theme是在values的styles文件中继承父theme,而这个父theme就是引用的appcompat包中的theme,于是我们把这个theme修改成系统自带的theme,例如android:Theme.Light。然后删掉之前生成的customize的内容,最好修改一下style的name属性,与以前不同就可以

<resources><!-- Base application theme. -->    <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"

这都是没有问题的

0 0
原创粉丝点击