您的位置:首页 > 移动开发 > Android开发

Android Studio修改项目编译版本

2016-07-18 12:04 381 查看
首发在知乎:

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"


这都是没有问题的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息