引入三方包导致 Theme 失效
来源:互联网 发布:网络买彩票会坐牢吗 编辑:程序博客网 时间:2024/06/02 07:27
引入一个三方包之后导致 App 主题失效,定位了一个下午,做个记录。
AndroidManifest.xml
文件中 application
节点配置如下:
<application android:allowBackup="false" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:theme="@style/AppTheme" tools:replace="android:allowBackup">
刚开始觉得应该是 App 的 theme 被覆盖掉了,然后添加了一个 replace。
tools:replace="android:allowBackup, android:theme"
结果主题依然失效,然后把三方包中在 AndroidManifest 中注册的 Activity
挪到 App 的 Manifest 中,还是不行。
最后跳转 @style/AppTheme
时发现三方包的依赖包中也定义了一个同名的 Style,而且还是在 values-21 文件下,而 App 并没有定义 values-21 下的 Style,所以 APP 的主题就被三方包的 Style 给覆盖掉了,而 android:replace='android:theme
只有在属性冲突的时候起作用,我的 App 并没有提供 values-21 的 Style,因此没有冲突,无法 replace
,于是悲剧了。
解决方案
- App 的主题名字最好具有唯一性, 不要叫
AppTheme
,容易同名。 - App 的主题要定义完整,比如 values / values-21
0 0
- 引入三方包导致 Theme 失效
- springMVC 引入多个配置文件导致默认配置文件失效的问题
- struts2+spring4+hiobernate4整合sitemesh导致jsp页面引入的js失效解决方案
- 设置android:theme导致死机
- 引入bootstrap导致布局混乱
- 编码问题导致js失效
- 字段缺失导致绑定失效
- 导致索引失效的情况
- setBackgroundResource导致Padding失效,settextsize
- ADO导致KeyboardHook无端失效
- 重启eclipse color theme失效的解决办法
- symentec anywhere 导致显示驱动失效
- 配置玩IIS后导致dreamweaver8失效
- Where语句设置不当导致索引失效
- jquery.load()会导致返回JS失效
- Aix普通用户使用bash导致ftp失效
- DNS失效导致邮件发送不出去
- 打印预览,导致window.close失效问题
- 安装 WINE
- Unity 5 中的全局光照技术详解
- js自动选择表单
- Android之document 帮助文档打开慢的三种解决方法
- 分析理解程序,进程,线程
- 引入三方包导致 Theme 失效
- iOS BSD Socket UDP编程
- MyEclipse 2014配置Maven
- PickerView的用法
- Java实现二分法查找
- MySql 内存表(engine=heap)
- win7 64位官方旗舰版上搭建ruby on rails的步骤
- H5中新增的表单元素
- 安卓程序自启动的办法