Android Gradle 2.3.3 升级 3.0.1 小记录
小菜因为种种原因需要升级 Android Gradle,Gradle > 3.0 时默认支持 Java 8;每次大版本升级都会涉及很多内容,小菜尽可能慎重,但还是简单记录一下升级过程中遇到的问题;
升级 classpath 'com.android.tools.build:gradle:3.0.1'
小菜从 2.3.3 升级到 3.0.1 同步之后会有很多问题;
Q1:
Unable to resolve dependency for ':testsdk@debug/compileClasspath': Could not resolve project :testlibrary. Unable to resolve dependency for ':testsdk@debugAndroidTest/compileClasspath': Could not resolve project :testlibrary. ...
A1:
Gradle 3.0.0 以后不能用 debugCompile project / debugCompile project 方式替换为 implementation project 即可;
debugCompile project(path: ':testlibrary', configuration: 'debug') releaseCompile project(path: ':testlibrary', configuration: 'release') 替换为 implementation project(':testlibrary')
Q2:
All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
A3:
所有类型都必须属于一个指定的类型维度,即一个产品特性组。必须将所有类型分配给类型维度;在需要修改的 Module.build 添加 flavorDimensions "versionCode" 即可;
defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" flavorDimensions "versionCode" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
目前同步完之后没有异常,但是 debug 运行又会有新的问题;
Q3:
Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration. - butterknife-7.0.1.jar (com.jakewharton:butterknife:7.0.1) Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future. See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
A3:
小菜在项目中应用到 ButterKnife,需要添加注解处理器,使用 annotationProcessor 配置依赖项;
compile "com.jakewharton:butterknife:7.0.1" 替换为 implementation "com.jakewharton:butterknife:7.0.1" annotationProcessor "com.jakewharton:butterknife:7.0.1"
Q4:
Execution failed for task ':test:javaPreCompileDebug'. > Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration. - compiler-1.1.0.jar (android.arch.lifecycle:compiler:1.1.0) Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future. See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
A4:
小菜在项目中使用了 Lifecycle,需要添加 Lifecycle 依赖项,删除以前 compile lifecycle 方式,将 Google Maven 代码库添加到项目中即可;小菜未使用 AndroidX 可以按需要自定义添加;
def lifecycle_version = "1.1.1" // 包含ViewModel和LiveData implementation "android.arch.lifecycle:extensions:$lifecycle_version" // 仅仅包含ViewModel implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // 仅仅包含LiveData implementation "android.arch.lifecycle:livedata:$lifecycle_version" // 仅仅包含Lifecycles implementation "android.arch.lifecycle:runtime:$lifecycle_version" annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor // 如果用Java8, 用于替代compiler implementation "android.arch.lifecycle:common-java8:$lifecycle_version" // 可选,ReactiveStreams对LiveData的支持 implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version" // 可选,LiveData的测试 testImplementation "android.arch.core:core-testing:$lifecycle_version"
Q5:
小菜目前运行打包都正常,但是同样的代码在其他开发同事上运行异常;
Type def recipe not found: /Users/gitspace/SogouNovel/commonlib/build/intermediates/typedefs.txt
A5:
小菜尝试之后发现,升级到 Gradle 3.0 之后,lamba 的版本也需要更新,将 lamba 的版本更新到 3.7.0 即可;
dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.sogou.compress:compress-plugin:1.0.1' classpath 'me.tatarka:gradle-retrolambda:3.7.0' //retrolambda }
Tips:
小菜建议在升级过程中注意混淆文件的处理,尤其是借助三方 SDK 时,注意官网混淆文件的添加;
至此,小菜升级过程中遇到的小问题基本解决,大部分都可以在官网或参考各路大神的博客,但还是记录尝试一下,对以后遇到的问题进行扩展整理;如有问题,请多多指导!
来源: 阿策小和尚
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【一周】新Web语言 | nginx版权问题 | 年度最受欢迎中国开源软件
回顾一周社区热门资讯 第【五十二】期:20191207-20191213 点击相应标题,跳转阅读全文。 elementary OS 5.1 "Hera" 发布,号称最美 Linux 发行版 Spring Boot 2.2.2 发布,支持 Gradle 6 Gradle 6 是一个主要版本,于上个月发布,此版本主要亮点是大大改进了依赖关系管理中的功能集。 2020 年的云世界:新联盟、无服务器和安全挑战 在新的一年里,包括云应用程序(SaaS)、开发和数据平台(PaaS)和基础架构(IaaS)服务在内的公共云市场将增长到 2994 亿美元,并将在接下来的短短几年中达到五万亿美元。这一市场在渐趋成熟。目前,在北美,有 65% 的企业依赖于公共云平台,而 66% 的企业运行内部私有云。 WASM成为 HTML、CSS 与 JS 之后的第 4 门 Web 语言 万维网联盟W3C 正式宣布 WebAssembly 核心规范(WebAssembly Core Specification)成为官方 Web 标准,这意味着WebAssembly 成为了第 4 种 Web 语言。 .NET 应用程序支持...
- 下一篇
商城系统 DBShop V1.3 Release 20191214 发布
DBShop 电子商务网店系统,采用 PHP 官方框架 ZendFramework 2 开发而成。在网上建立自己的店铺、自己的销售网站的不二之选。强大的后台管理及简单的操作流程,让您一见倾心。严谨的功能结合、贴心的提示提醒、全面的学习教程,方便的在线更新,让您一用放心。 更新内容 ------------------------------------------------- 新增 批量导入虚拟商品 修正 腾讯云短信发送时,订单编号和订单金额反了 优化 单页cms的tag字段长度 优化 支付通知 如果已经支付,返回到已支付订单列表 优化 手机端如果需要登录后方可购买,自动跳入登录页面 优化 公众号登录 优化 虚拟账号电邮发送 优化 客户排行进行购买数量的排行 相关链接 DBShop 的详细介绍:点击查看 DBShop 的下载地址:点击下载
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装