compileSdkVersion和appcompat-v7关系研究

关于Android studio中Failed to resolve:com.android.support:appcompat-v7:27+问题的处理 首先,Failed to resolve:com.android.support:appcompat-v7:问题产生的原因就是自己安装的sdk版本与Android studio编译时的版本不一致导致的 然后,查看自己安装的版本,Tools->Android->SDK Manager->Updates:如图 以及SDK构建工具版本:Tools->Android-&gt... 阅读详情

经常在开发中遇到由于版本不对导致出现如下的错误

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Medium.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Small.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar.Horizontal'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Dialog'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light.Dialog'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Button'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
该错误是来自于com.android.support/appcompat-v7,com.android.support是google做的一个版本兼容包。可以简单理解为,如果你在开发中使用了在高版本中才有的API特性,通过com.android.support库也可实现在低版本上使用。appcompat-v7为com.android.support中的其中一个库。


问题分析:
以第一行报错为例

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
在工程中指向

<style name="Base.TextAppearance.AppCompat.Inverse" parent="android:TextAppearance.Material.Inverse"/>

找不到父类android:TextAppearance.Material.Inverse,那这个父类是在哪里呢?这个是android的系统资源类,通过查找android平台源码 https://android.googlesource.com/platform/frameworks/base/+/android-5.0.0_r2/core/res/res/values/styles_material.xml

最终在styles_material.xml中找到了它的定义

<style name="TextAppearance.Material.Inverse">
        <item name="textColor">?attr/textColorPrimaryInverse</item>
        <item name="textColorHint">?attr/textColorHintInverse</item>
        <item name="textColorHighlight">?attr/textColorHighlightInverse</item>
        <item name="textColorLink">?attr/textColorLinkInverse</item>
</style>

这个是在Android 5.0下找到的。为了对比,我也找了一下Android 4.4下面


发现根本不存在styles_material.xml文件,说明是从Android 5.0才开始增加此特性的。


结论:
我们使用appcompat-v7是为了保证我们编译的apk能够保持向下兼容,所以appcompat-v7的版本必须和compileSdkVersion保持一致。如果appcompat-v7版本小于compileSdkVersion,则不能保证到所有版本的兼容性。如果appcompat-v7版本大于compileSdkVersion,则会出现像上面那样的错误。

aapt问题,compileSdkVersion、buildToolsVersion、buildToolsVersion、 com.android.support:appcompat-v7版本问题 aapt问题:注意你的用户名不要中文,项目中不要中文。 aapt 是Android Asset Packaging Tool的缩写,是编译和打包资源的工具。而aapt2是在aapt上做了优化。Android Gradle Plugin 3.0.0或者更高版本默认开启aapt2。当然也可以在配置文件中手动关闭aapt2。 一般打包过程情况下,都是由gradle自动调用aapt2,将资源文件... 阅读详情

相关推荐

appcompat_v7jar包

appcompat_v7jar包appcompat_v7jar包appcompat_v7jar包

安卓开发中难免引入很多第三方库,当你的sdk版本COMPILESDKVERSION和引入库的版本 需要的 v4或者v7库不一样时会出现奇怪的错误

安卓笔记:安卓开发中难免引入很多第三方库,当你的sdk版本COMPILESDKVERSION和引入库的版本 需要的 v4或者v7库不一样和你的编译版本COMPILESDKVERSION不匹配时会出现奇怪的错误 当然大部分时候不会有这个错误   但是也会影响打包速度 毕竟你重复引入了很多包.  这里有2种解决方式:一, 升级安卓COMPILESDKVERSION 的SDK 版本到最新, 可以向下兼容...

qq_33543960的博客 2782

BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network(2018,妆容迁移)

论文下载地址:BeautyGAN | Proceedings of the 26th ACM international conference on Multimedia 目的:在实例级实现化妆图像和非化妆图像的妆容迁移 方法:全局域集损失和本地实例级损失合并到一个双输入/输出对抗生成网络。步骤:使用一对鉴别器将非化妆面传输到化妆域,鉴别器从域的真实样本中分辨出生成的图像。在域集迁移的基础上,采用基于不同人脸区域的像素级直方图损失来实现实例级迁移。为了保持人脸的一致性和消除伪影,在总体目标函数中加入了.

weixin_53965540的博客 663

编译版本问题androidx.appcompat:appcompat-resources 引用错误

错误信息显示,依赖库 androidx.appcompat:appcompat-resources 的 AAR metadata 文件中指定的最小编译版本(minCompileSdk)为 33,而你的项目的 compileSdkVersion 为 android-30。由于两者不匹配,导致构建失败。根据错误消息的内容,可以看出这个错误是由于你的项目依赖库中的 androidx.appcompat:appcompat-resources 版本与你的 compileSdkVersion 不兼容引起的。

xiaoerbuyu1233的博客 6247

Ubuntu 24.04 LTS与Windows 11远程桌面连接:从xrdp闪退到xfce4桌面环境的实战排障

本文详细解决了在Ubuntu 24.04 LTS上使用xrdp连接Windows 11远程桌面时遇到的登录后闪退问题。通过分析日志,定位到默认GNOME桌面环境与xrdp的兼容性冲突,并提供了将桌面环境更换为轻量且兼容性更佳的XFCE4的完整实战解决方案,包括安装、关键配置修改及服务重启步骤,确保远程连接稳定可靠。

mango的博客 805

图片边界矢量化-地理配准

无地理和投影信息的JPG图片,通过ArcGIS进行地理配准(Georeferencing)完成数字化边界。

u012727861的博客 1904

minSdkVersion、API level 以及兼容包appcompat三者之间的关系

1、minSDK与API minSDK: 该应用能够运行的最低版本的SDK是多少。 API level: 每个API有它被引入android SDK的时间,也就是对应的SDK版本,自此SDK版本以上才能使用该API 比如说某应用APK使用API: funA ,且funA被引入的版本为7,那么只有7以后的SDK才能使用该API。 然后这个APK运行的SDK平台一定要大于这个funA被

chutianya的专栏 1786

华为交换机链路聚合对接思科交换机链路聚合故障

2台华为交换机采用堆叠方式与思科交换机之间使用链路聚合,华为交换机与cisco交换机链路捆绑接口频繁UP/DOWN,业务中断。

网络工程师日常的博客 2116

compileSdkVersion、buildToolsVersion、buildToolsVersion、com.android.support:appcompat-v7:四者的版本对应小结

这是我在上一篇博客中的图片。前面说过这里要对应,这一步很重要。这是最理想的情况。都对应上是最好的。 compileSdkVersion 所在项目使用的sdk库版本 buildToolsVersion 构建工具的版本 buildToolsVersion 目标设备的sdk版本 com.android.support:appcompat-v7:26.+ 声明支持的sdk库版本。 如果compileS...

Chz_1的博客 2718

Abaqus SIGTERM/SIGINT中断问题深度解析与实战解决方案

本文深度解析Abaqus仿真计算中因SIGTERM或SIGINT信号导致作业意外终止的常见问题。核心原因常为许可证管理器因网络通信延迟误判进程空闲而强制断开,或系统资源监控工具的误杀。文章提供了从命令行参数调优(如使用int、ask_delete=OFF)、计算环境隔离到编写自动化容错脚本的完整实战解决方案,帮助用户彻底规避此类中断,确保长时间仿真任务的稳定运行。

weixin_29279101的博客 409

基于Spring Boot在线远程考试系统的设计与实现

结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。目前的信息时代,对信息的管理趋于高效化,便捷化,这也是计算机大力普及所带来的便利,此程序软件在设备选用上,依靠的是比较大众的电脑设备,对电脑的配置没有过多要求,一般学校的计算机机房的电脑都可以满足程序开发需求,另外,开发出此款程序,让信息处理变得高效率,其所带来的高效益是远超程序开发的低成本的,因此程序开发的资金投入是可以忽略不计的。

ITbiyesheji的博客 1215

appcompat_v7 报错 完美解决

经过好几个小时的捯饬,各种文章说需要重启Eclipse ,其实根本无所谓,重要的还是配置,下面是解决办法: 第一步:选择appcompat_v7-->Properties-->Android-->选择最高的API版本,并且确定Library 中的is library被选中,这个意思就是确保这个项目是类库项目 不能被启动的。 第二步:确定第一步以后,选择Project-->cle

云淡风轻的博客 1万+

AD-Copilot 论文解读:把“大模型看图”升级为“对照检验”的工业异常检测助手

本文提出AD-Copilot,一个面向工业异常检测的视觉语言助手,通过视觉上下文比较解决现有方法的不足。针对工业场景中多模态大模型表现不佳的问题,作者指出核心原因在于缺乏工业数据和比较能力不足。为此,论文提出三个关键贡献:构建Chat-AD数据集,设计Comparison Encoder显式建模图像差异,以及采用多阶段训练策略。实验表明,该方法在MMAD基准上达到82.29%准确率,定位任务提升3.35倍,并展现出良好的泛化能力。消融实验验证了比较模块的有效性,表明其成功源于高质量比较数据与显式比较模块的协

blanokvaffy的博客 330

android studio 编译失败:appcompat-v7的问题

在make 其中一个module的时候,报appcompat_v7相关的错误,不是资源不存在就是style不存在 module 里面的 build.gradle文件如下 apply plugin: 'com.android.application' android { compileSdkVersion 17 buildToolsVersion "19.1.0"

lue2009的专栏 6394

纯方位观测下的三维定位,IV-PLKF(Inverse Velocity-Weighted Pseudo-Linear Kalman Filter)

在现代定位系统中,纯方位观测因其无需测距设备的优势,在无线通信、无人机导航和室内定位等领域备受关注。本文深入探讨基于算法的三维定位方法,并提供完整的MATLAB仿真例程。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 672

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

关于AndroidStudio 引用 appcompat-v7 导致资源文件找不到的问题

当你在创建了一个高版本的项目后,比如 compileSdkVersion 28,AndroidStudio 会自动在 build.gradle 中引用 appcompat-v7 包,此时如果手动 降低 compileSdkVersion 版本,会报错,比如降低到 compileSdkVersion 19 。提示与compile sdk version不一致,然后自己试着修改到一致的版本时,报错...

weixin_36637758的博客 1890

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

AndroidStudio修改默认的compileSdkVersion、targetSdkVersion以及appcompat-v7版本号

方法一: 1、修改compileSdkVersion、targetSdkVersion版本号 修改如下路径文件中的内容: AndroidStudio安装目录\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\shared_macros.ftl 2、修改appcompat-v7版本号 修改如下路径文件中的内...

Duckdan的博客 2871

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android Studio 理解com.android.support:appcompat-v7:x.x.x依赖包(建议收藏)

我的,在app的build.gradle内容如下: ...... android { compileSdkVersion 25 buildToolsVersion "31.0.0-rc4" defaultConfig { ...... minSdkVersion 15 targetSdkVersion 25 ...... } ...... } dependencies { ...... i

彬sir哥的博客 1920

讲讲com.android.support/appcompat-v7

com.android.support 是 google 做的一个版本兼容包。 可以简单理解为,如果你在开发中使用了在高版本中才有的 API 特性,通过 com.android.support 库也可实现在低版本上使用。(appcompat-v7 即为 com.android.support 中的其中一个库。) 使用 appcompat-v7 是为了保证编译的 apk 能够保持向下兼容,所以...

m0_37292262的博客 3523

Android Studio 添加v7:27.+依赖库:Error:Failed to resolve: com.android.support:appcompat-v7:27.+

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; 你在使用android studio时是否也出现过上图的报错,你还在为它的出现烦恼?没问题,看了本文章,我确保你会顺利解决掉它并会很骄傲的认为这只是

hzy670800844的博客 2213

compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系

要升级应用的sdk版本,需要弄清楚compileSdkVersion、targetSdkVersion、Support库的作用与他们之间的关系,以保证应用的配置正确,升级后能让应用在不同的系统上都正常使用。1、各Version的含义与关系compileSdkVersion:应用编译时使用的sdk版本(仅编译时生效,与运行时无关)1.我们日常开发中编译、打包apk时使用的android sdk版本就是由compileSdkVersion指定的。

weixin_42504805的博客 1270

compileSdkVersion、minSdkVersion 、targetSdkVersion、Support库的作用与它们之间的关系

前言 要升级应用的sdk版本, 需要弄清楚compileSdkVersion、minSdkVersion 、targetSdkVersion、Support库的作用与他们之间的关系, 以保证应用的配置正确,升级后能让应用在不同的系统上都正常使用。 1、各Version的含义与关系 compileSdkVersion:应用编译时使用的sdk版本(仅编译时生效,与运行时无关) 我们日常开...

IT666DHW的博客 508

appcompat-v7:21.0.0‘:找不到与给定名称匹配的资源:attr‘android:actionModeShareDrawable‘

When attempting to use the latest appcompat-v7 support library in my project, I get the following e

CHCH998的博客 327

android项目中不选用v7扩展包,android 项目中v4 v7包的使用

v7 Android 2.1(API 7级)以上支持Gradle引用方法compile 'com.android.support:appcompat-v7:23.1.1' //必须要导入他才能使用v7包下面的控件compile 'com.android.support:cardview-v7:23.0.0' //v7包下面的控件compile 'com.android.support:recyc...

weixin_34055346的博客 312

Failed to resolve: com.android.support:appcompat-v7:xx.+

1、错误信息 Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:27.+ 2、环境描述 Android Studio 2.3.3 如下图所示 注意:支持的Android SDK Tools 是 25.2.4 3、场景复现 导致这个问题时本人用Android Studio 2.3.3 创建一个新的工程,而...

WildTiger 690

Android Studio报错Could not find any version that matches com.android.support:appcompat-v7:33.+.

Could not find any version that matches com.android.support:appcompat-v7:33.+. cannot reslove symbol"v7"

m0_60599049的博客 916
下一篇: Android app 上传到google play,需要设置 隐私政策声明
jerrylearner
博客等级 码龄19年 3粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值