Android Support兼容包详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50216719 文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

遇到这个问题,有时候虽然解决了,但是还是不知道原理是什么,我写了这两篇文章,或许能借你心中疑惑

Android Support兼容包详解

No resource found that matches the given name ‘@style/Theme.AppCompat.Light’

编译报错:

错误一:

No resource found that matches the given name '@style/Theme.AppCompat.Light'

参考:No resource found that matches the given name ‘@style/Theme.AppCompat.Light’

错误二:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

参考:You need to use a Theme.AppCompat theme (or descendant) with this activity.

你可能遇到过上面两个问题,其本质都是一样的,具体解决办法参考相关文章

本文深入分析探讨导致这些问题的原因、由其衍生出来的一系列问题及其解决方案。

下载支持库

查看官方文档
https://developer.android.com/topic/libraries/support-library/setup.html#download

Support Library

The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs as well as features that are only available through the library APIs.

我们都知道Android一些SDK比较分裂,为此google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下(后)兼容性(软件的「向前兼容」和「向后兼容」), 所以你可能经常看到v4,v7,v13这些数字,首先我们就来理清楚这些数字的含义,以及它们之间的区别。

  • support-v4
    用在API lever 4(即Android 1.6)或者更高版本之上。它包含了相对更多的内容,而且用的更为广泛。
    例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,FileProvider 等

Gradle引用方法:

compile 'com.android.support:support-v4:21.0.3'
  • support-v7
    用在API level 7(即Android 2.1)或者更高版本之上,但是v7是要依赖v4这个包的,v7支持了Action Bar以及一些Theme的兼容。
    • v7 appcompat library 是包含在 v7 Support Libraries里面的一个包,正是此包增加了 Action Bar 用户界面的设计模式,并加入了对 material design的支持,是我们使用最多的一个兼容包。

Gradle引用方法:

compile 'com.android.support:appcompat-v7:21.0.3'
  • support-v13
    这个包的设计是为了API level 13(即Android 3.2)及更高版本的,一般我们都不常用,平板开发中能用到,这里就不过多介绍了。

  • v17 Preference Support Library for TV
    看名字就知道了,此包主要是为了TV设备而设计。

Theme

介绍下2种Theme的概念。

Hoho Theme

在4.0(API 14)之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,从此Android在设计上有了很大的改善,而在程序实现上相应的就是Holo风格

4.0(API 14)的Holo设计风格类似 如下:

  • Theme.Holo.Light、
  • Theme.Holo.Light.DarkActionBar

但是为了让4.0(API 14)之前的版本也能有这种风格怎么办呢?这个时候就不得不引用v7包了,所以对应的就有下面两个主题:

  • Theme.AppCompat.Light
  • Theme.AppCompat.Light.DarkActionBar,

如果你的程序最小支持的版本是4.0,那么可以不用考虑v7的兼容。在4.0之前的版本支持Holo风格,需要引用v7包了

Material Design Theme

今年的5.0版本,Android推出了Material Design的概念,这是在设计上Android的又一大突破。

  • Theme.Material.Light、
  • Theme.Material.Light.DarkActionBar

但是这种风格只能应用在5.0版本的手机,如果在5.0之前应用Material Design该怎么办呢?在5.0之前应用Material Design,需要引用appcompat-v7包,

下面两个Theme相对应兼容的Material Design的Theme:

  • Theme.AppCompat.Light、
  • Theme.AppCompat.Light.DarkActionBar

注意事项:

  1. gradle引用appcompat-v7包的时候就不需要引用v4了,因为v7里默认包含了v4包;

  2. compile ‘com.android.support:appcompat-v7:21.0.3’ 中的21代表API level 21推出的兼容包,所以如果你引用的是21之前的版本,则默认这些Theme.AppCompat.Light是Holo风格的,从21开始的版本默认是Material风格。

  3. 使用appcompat之后,你的所有的Activity应该继承自ActionBarActivity,而ActionBarActivity继承自FragmentActivity,所以放心的使用Fragment; Fragment与activity生命周期关系、不同Android版本FragmentManager的差异

参考:
http://stormzhang.com/android/2015/03/29/android-support-library/
http://www.apkbus.com/android-246037-1-1.html?_dsign=361a7403
最后推荐一篇,讲解详细的文章Android Support Library的前世今生

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 您可以在官方网站上下载 Android Support Library v7 :https://developer.android.com/topic/libraries/support-library/packages#v7-appcompat 或者在你的Android Studio的SDK Manager中下载。 ### 回答2: Android Support v7Android开发中非常重要的一个库。它含了很多常用的UI控件,例如ToolBar、RecyclerView、TabLayout等,这些控件可以使我们的应用程序在各种大小不同的设备上都能够有更好的用户体验。 要下载Android Support v7,首先需要下载并安装Android SDK Manager。Android SDK Manager含了Android开发所需的很多必要组件和API,也括了Android Support v7。打开Android SDK Manager后,选择Tools菜单下的Options,在打开的窗口中勾选“Force https://... sources to be fetched using http://...”,接着点击Close按钮即可。 在选择完需要下载的后,点击Install Packages按钮。下载完成后,需要在项目中引用这个库,这可以通过在Android Studio中修改Gradle配置文件来实现。在Gradle的dependencies部分将 `compile 'com.android.support:appcompat-v7:28.0.0'` 这一行代码添加进去即可。 需要注意的是,每个版本的Android Support v7都有自己的Gradle引用代码,所以在添加这一行代码时需要确保版本号与自己下载的版本匹配。另外,建议使用最新版本的Android Support v7,因为最新版本通常含了更多的修复和新功能。 Android Support v7的下载和使用是Android开发入门的重要知识之一。熟练掌握这一过程可以帮助开发者更快更好地构建出高质量的Android应用程序。 ### 回答3: Android Support V7是一个非常有用的开发,其中括了很多与Android应用程序开发相关的功能和类。这个具有以下几个重要的优点: 1. 统一了Android系统版本的兼容性问题。使用这个可以很方便地解决应用程序在不同版本的Android系统上出现的兼容性问题。 2. 提供了很多新的控件,括工具栏、RecyclerView等。这些控件可以大大提高应用程序的交互体验和用户界面设计效果。 3. 提供了很多应用程序开发中常用的工具类和方法,可以大大简化应用程序的开发过程。 如果你想要下载这个,可以按照以下步骤进行: 1. 打开Android Studio开发工具,在项目的build.gradle文件中添加以下代码: dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' } 2. 点击“Sync Now”按钮,即可将这个下载到你的项目中。 如果你没有使用Android Studio开发工具,也可以从Google官方网站上下载相应的jar和文档,然后手动将它们添加到你的项目中。 总之,Android Support V7是一个非常重要的开发,对于Android应用程序的开发非常有帮助。如果你想开发出更加出色的Android应用程序,那么下载这个是非常必要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛瑄

文章不错,请博主吃包辣条

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值