一、说明
笔记主要是记录一些本人在开发当中的学习和使用笔记。笔记内容包含一些本人觉得重要的知识点、本人易犯的错误等。
由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合理和错误的地方,以便我来修改错误,避免误导读者。谢谢!
二、笔记时间
2018年12月12日
三、简述
本文主要讲述旧Project适配Android Studio 3.2.1的相关事项。
四、详情
1 Project 随 Android Studio 升级
Android Studio升级之后,总是不完全兼容低版本的项目,这就导致我们需要把项目适配新的Android Studio。
最近我需要修改几个旧项目。可是这几个旧项目是基于Android Studio 2.3.3 开发的,而我当前使用的是Android Studio 3.2.1。
当我们的旧项目在新版本的Android Studio中编译时,编辑器会给我们报相应的错误。我们解决这些错误就可以使项目正常编译运行。
注:编译所产生的警告多半是已经废弃的旧属性,但是在新版本中还是可以正常工作。因此我们可以暂时不处理这些警告,等我们时间充足时再来处理这些警告。
2 常规修改
2.1 Android Studio 插件版本修改
修改编译插件为Android Studio对应版本。修改位置在项目根目录build.gradle文件中的dependencies属性中;
![](https://img.haomeiwen.com/i4348684/dcbb995bff596137.png)
![](https://img.haomeiwen.com/i4348684/a10659d20e5dd332.png)
2.2 gradle 版本修改
通常Android Studio升级后gradle的版本也会相应的变化,也就表明我们需要修改gradle版本为相应版本。修改位置在根目录gradle文件夹 -> wrapper文件夹 -> gradle-wrapper.properties文件 -> distributionUrl属性。
![](https://img.haomeiwen.com/i4348684/4c05d7dcc60cfac2.png)
![](https://img.haomeiwen.com/i4348684/2022658030ba6994.png)
3 其他修改
3.1 apt插件替换
Android Studio 3.2.1 已经不支持apt插件,但是Android Studio自带了apt的替换插件,它就是annotationProcessor。此处的修改就是删除之前的apt插件引入方式,用自带的annotationProcessor替换apt。其修改分以下几步:
1)删除apt插件的引入;
![](https://img.haomeiwen.com/i4348684/5db75c8cd1a2f131.png)
![](https://img.haomeiwen.com/i4348684/4534c719a487ab41.png)
2)删除module中apt的引用;
![](https://img.haomeiwen.com/i4348684/bb26e6a3b81b3078.png)
![](https://img.haomeiwen.com/i4348684/e1a31ee014caf79b.png)
3)替换apt为annotationProcessor
![](https://img.haomeiwen.com/i4348684/d80302ceb4a04725.png)
![](https://img.haomeiwen.com/i4348684/3eee6bffe4056a46.png)
3.2 多lib导致的配置不统一
当我们引入了多个lib之后,可能会由于不同lib的一些配置不一样,导致编译通不过,报flavors 错误。这时我们可以通过flavorDimensions来处理。如下图:
![](https://img.haomeiwen.com/i4348684/6dd93663e9f2e357.png)
3.3 不支持在AndroidManifest中标志最小版本
用Eclipse的朋友会习惯把版本号写到AndroidManifest文件中;或者导入的是Eclipse项目,那么项目中的最小版本、版本号等都是在AndroidManifest中的。
Android Studio 3.2.1是不支持把最小版本写在AndroidManifest中的,如果把最小版本写在AndroidManifest中,编译会通不过。其他的版本号、目标版本等建议按Android Studio的标准模式写到build.gradle中。
3.4 instrumentTest 过时
单元测试instrumentTest 已经不在支持,需要用androidTest来替换。
![](https://img.haomeiwen.com/i4348684/04b8428d421e9a6e.png)
![](https://img.haomeiwen.com/i4348684/684696e388a57e3d.png)
网友评论