android - 将旧项目迁移到 Android Plugin for Gradle 3.1.2
问题描述
我有一个大的旧项目供 Android 支持。它是在旧的 Gradle 版本(2.2.3)下开发的。我曾经使用最新的 Android Studio,现在我正在尝试将这个项目迁移到当前的 Gradle 版本(3.1.2)。
我已经阅读了谷歌的指南,并从中提出了建议。我设法解决了除两个之外的所有问题。第一个是
警告:配置“编译”已过时,已替换为“实施”和“API”。
我在我的项目中进行了所有替换,据我所知,这是由依赖项中的库引起的。好吧,让我们忍受它。但第二个问题是
错误:资源 android:attr/foregroundInsidePadding 是私有的。Message{kind=ERROR, text=error: resource android:attr/foregroundInsidePadding is private., sources=[C:\Users\alexanderk.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.1.1. aar\b3fbcbe446f57e45b23f5cfcf67ccbb9\res\values\values.xml:203:5-69],原始消息=,工具名称=Optional.of(AAPT)}*
谷歌的指南对此有以下说法
要解决此问题,只需将 android:foregroundInsidePadding 替换为 foregroundInsidePadding。
没关系,我打开问题文件values.xml
,转到第 203 行,然后…… 奇怪的是,这里没有foregroundInsidePadding。而且整个xml中没有这个词。我尝试使 Gradle 缓存无效,但在 Gradle 重新创建缓存后问题再次出现。我不能忽视这一点,因为这个问题停止了。
任何想法如何解决这个问题?
解决方案
appcompat-v7-25.1.1.aar\b3fbcbe446f57e45b23f5cfcf67ccbb9\res\values\values.xml
看起来它抱怨的不是项目中的 values.xml,而是 appcompat 库中的一个。尝试提升支持库版本
推荐阅读
- angularjs - angularjs http拦截器responseError对象
- ios - 如何在ios swift中实时更新单元格内容时实时更新tableview单元格内容
- python - 打印结果后再次调用时,cv2.connectedComponents 崩溃
- reactjs - Material-UI 按钮组件在 Github 页面上部署后无法正常工作
- c# - ChangeStreamDocument.ClusterTime 总是抛出 FormatException
- reactjs - 导入 Semantic-ui css,而类不在本地范围内 || Semantic-ui 使用在本地范围内的类
- javascript - Typescript 和 rxjs 6 - 类型“{}”上不存在属性
- spss - 根据键 ID 将行更改为列
- jquery - TYPO3 v8.7 JQuery 包括在内?
- react-native - sectionView、ListView 和 FlatList 的核心概念是什么?