Android升级支持库版本遇到的两个问题详解
作者:山水相逢z 发布时间:2023-12-02 11:24:38
前言
早在2011年它作为安卓兼容库发布,在75%的应用中使用过,是最广泛使用的安卓库。它事实上不是一个单一的文件,而是一个集合,其中可以大致可以分为两组:兼容库和组件库。
每一个库都指明了所支持的最小sdk版本。有一点容易弄错,就是高版本的支持库很容易被理解为涵盖了低版本支持库的所有内容。实际上,并非如此。(可能你认为v7-appcompat包含了v4,但是不是这样的)。
公司项目之前support Library 版本比较混乱,各moudle有好几个版本的v7包和v4包,而且版本还比较低,今天抽时间统一了下支持库以及buildToolsVersion等的版本,但是遇到了两个问题,记录一下。
1. 升级buildToolsVersion至26
最新的buildToolsVersion已经到26了,照之前方式,直接在build文件中将buildToolsVersion后的引用版本改为26.0.2,然后同步,发现编不过去,提示:
[failed to find build tools revision 26.0.2]
查了一下,从sdk 26开始,需要在根目录build文件的repositories加上以下内容:
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
再次编译,成功。
2. 在主题设置隐藏ActionBar无效
最初我的appcompat-v7版本是20,所以activity继承的是ActionBarActivity,所以在style文件里是这样设置是有用的的:
<item name="android:windowActionBar" tools:targetApi="honeycomb">false</item>
<item name="android:windowNoTitle">true</item>
升级到26.1.0后,ActionBarActivity被AppCompatActivity替代,这时候用android:windowActionBar这种方式设置就不行了,改为以下方式
<item name="windowActionBar" tools:targetApi="honeycomb">false</item>
<item name="windowNoTitle">true</item>
即去掉“android:”,至于这两种写法的区别:
若添加在属性名称前添加 andoird: 时即指定属性为 android 包下。
而项目的 Base Style AppTheme 继承自 Theme.AppCompat,位于 appcompat-v7 library, 而不是 android 包下。所以错
误地使用 android:windowActionBar 和 android:windowNoTitle,应该使用 windowActionBar 和 windowNoTitle
来源:http://www.jianshu.com/p/9e0c019b04e8


猜你喜欢
- 1、自定义消息转换器MessageConverter在WebMvcAutoConfiguration类中有一个方法configureMess
- 要求: * 判断用户输入的年份是平年还是闰年实现代码:import java.util.Scanner;/** * 要
- 1、String类1.1两种对象实例化方式对于String在之前已经学习过了基本使用,就是表示字符串,那么当时使用的形式采取了直接赋值:pu
- 由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉
- java 读取网页内容的实例详解import java.io.BufferedReader; import java.io.IOExcept
- 下边是一些我们常用的正则表达式。自己写的一些正则表达式,可以先在线测评一下。一、校验数字的表达式 1 数字:^[0-9]*$&nb
- 官网教程一、翻转(镜像)头文件 quick_opencv.h:声明类与公共函数#pragma once#include <opencv
- 现公司架构大佬在项目中使用了 mybatis-generator-gui ,这是一款开源图形化 MyBatis 代码生成工具,使用起来相当的
- 前言在上一篇文章中,我们分析了Spring中Bean的实例化过程,在结尾我们知道了虽然bean的实例化完成了,但是其中的属性还没有被注入,今
- 本文实例讲述了C#操作PowerPoint的方法。分享给大家供大家参考。具体如下:这里C#操作PowerPoint的基本代码,包括打开ppt
- 一、总体概述官方文档:https://docs.devexpress.com/WindowsForms/8117/controls-and-
- ToggleButton开关状态按钮控件使用方法,具体内容如下一、简介1、2、ToggleButton类结构父类是CompoundButto
- 一.WebSocket简单介绍WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-d
- 概述状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对
- 场景我们团队现在面临着多端数据接口对接的问题,为了解决这个问题我们定义了接口对接的规范,前端(安卓,Ios,web前端)和后端进行了数据的格
- 一、基于配置的异常处理SpringMVC 提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolv
- public class MainActivity extends Activity { TextView tv; Ch
- volatilevolatile是一种轻量同步机制。请看例子MyThread25类public class MyThread25 exten
- FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或Stre
- 引言本文我们来分析NameServer相关代码,在正式分析源码前,我们先来回忆下NameServer的功能:NameServer是一个非常简