最近升级了Android Studio 3.1.2,还没沉浸在欢乐中,就当头一棒,更新项目没事,但是运行项目就报错。错误信息如下:

Caused by: org.gradle.tooling.BuildException: Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.

具体详情是:

错误

对于我这种英文战五渣,费老鼻子劲了,各种翻译,还是没有发现问题的关键。但是问题还是要解决,不然项目都run不起了。

然后各种尝试,突然想起我的app下的build.gradle文档配置信息可能有问题,于是查看该文件,发现是这样写的:

buildTypes {

debug {

// 显示Log

buildConfigField "boolean","LOG_DEBUG","true"

versionNameSuffix "-debug"

minifyEnabled true //混淆打包

shrinkResources true // 删除无效资源

proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'

}

...

}

我灵机一动,觉得可能是shrinkResources true这个导致的(没办法,以前Android Studio 2.3.2打包的时候遇到过这个坑),于是,我把shrinkResources 的值改成了false,再run,发现log显示:

Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.

果然,报错不一样了,又是英文,老办法,翻译呗,猜想是混淆打包的锅。翻译出来是:

在收缩期间发现的警告,请使用DOWTWARN或-ICONRIONG警告来抑制它们。

what?什么玩意儿,不过-dontwarn or -ignorewarnings 都是混淆打包才有的专业术语,于是,修改minifyEnabled false,最后如下:

buildTypes {

debug {

// 显示Log

buildConfigField "boolean","LOG_DEBUG","true"

versionNameSuffix "-debug"

minifyEnabled false

shrinkResources false

proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'

}

...

}

再运行,debug版本运行成功!

不过虽然解决了,但是Android Studio 2.3.2 也是这样配置的,并没有出问题呀?而且minifyEnabled 和shrinkResources 的release版本值都是true,debug版本出问题,我担心release版本打包后也会出问题,于是,打包尝试了下,发现,居然没出问题,成功打包,什么情况?并且能运行起来,简单看了下,也没报错。

这么邪门的3.1.2版本,我已经无语了,这里记录下。

最后,经过不懈努力,终于,我还是找到了解决办法(我就是想使用混淆代码!!!),代码如下:

buildTypes {

debug {

// 显示Log

buildConfigField "boolean","LOG_DEBUG","true"

versionNameSuffix "-debug"

minifyEnabled true

shrinkResources true

useProguard true

proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'

}

...

}

没错,追加一行useProguard true这个设置,报错就奇迹般没了,没了,没了!!!

查找资料,useProguard true是开启混淆的意思,这样,程序就好了。

好了,完美解决,结束!

Android版本更新踩坑,Android Studio 3.0升级后踩到的坑相关推荐

  1. android studio项目总结,android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)...

    Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 Kotlin 开发语言的支持,除此之外还有其他一些新功能,例如:Android Profiler (其中包 ...

  2. OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易用。

    okhttp-OkGo 项目地址:jeasonlzy/okhttp-OkGo 简介:OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易 ...

  3. 微信7.0升级后 高德地图在微信内置浏览器定位失败

    此文为博主原创 转载请注明出处 尊重一下笔者的劳动成果 ⑩分感谢 场景:微信7.0 苹果可以获取到定位 安卓获取不到定位 原因:微信升级7.0做了安全限制 导致使用http的定位不能正常使用 解决办法 ...

  4. Android Studio 3.0~3.x正式版填坑之路

    序言 总看别人的文章,今天尝试着自己来写一篇.在逛论坛时候,无意间发现Android Studio 3.0正式版本推送更新了,早听说AS 3.0添加了许多新功能,然后手贱迫不及待地想先睹为快,结果正中 ...

  5. android 版本更新和下载安装适配7.0 8.0 9.0

    在android 7.0之前版本更新其实相当简单,只需要使用系统下载器就能够完成下载之后安装,但是在7.0之后android升级安全机制,下载安装受到一些限制.工具类拿去用 public class ...

  6. Android Studio 3.4升级后的运行问题解决办法

    Android Studio 3.4推出有一段时间了,升级之后又有几个问题需要处理,说明如下: 一.把Gradle升级到AS3.4配套的5.1.1版本 1.手工下载Gradle4.6并解压,下载地址是 ...

  7. android人脸解锁亮屏,EMUI 8.0升级加入全新人脸解锁 抬腕亮屏功能:快来看看如何开启...

    作为华为高端机型,华为mate10以及mate10 pro终于在近日收到了基于安卓8.0 的EMUI 8.0升级,升级之后EMUI的系统版本号为8.0.0.128SP2. 华为mate10系统更新 除 ...

  8. ETH2.0升级后PoS质押给以太坊带来什么影响?

    ETH2.0主网已经成功于12月1日成功启动,ETH 2.0信标链在主网上发布,这标志着以太坊的一个重要里程碑. ETH 2.0是以太坊区块链的关键网络升级,升级之前以太坊网络拥堵的时候gas费用非常 ...

  9. 免费解决Android studio 3.0更新后搜狗输入法卡顿问题

    免费.轻松.舒服.完美 个人经历,我也遇到了非常恶心的问题,一查CSDN,有替换jre.升级java版本.搜狗输入法智慧版.bing输入法.谷歌输入法,有些下载还需要币的,需要币的竟然还有失败案例,没 ...

最新文章

  1. Brian 的 Perl 问题之万能指南
  2. 【廖雪峰Python学习笔记】函数式编程
  3. Exception in thread main java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  4. BiliBili 第三方 Android 客户端应用源码
  5. WebRTC拥塞控制算法——GCC介绍
  6. PMP每日三题(2022年2月14日)
  7. python单位根检验看结果_Python ADF 单位根检验 如何查看结果的实现
  8. @Springboot搭建项目controller层接收json格式的对象失败
  9. ethtool用法 linux_Linux命令之Ethtool用法详解
  10. Redis五大数据类型String、Hash、List、Set、ZSet
  11. 日本AI画师火速走红:印象派画作秒秒钟完工,看一整天都不腻,你也能来DIY...
  12. 使用pip+清华镜像源安装软件
  13. sourceInsight
  14. Ubuntu PPPOE拨号
  15. 硬盘的修复(三)恢复删除文件
  16. True Liars POJ - 1417
  17. UC/OS-II(一)资料绪论
  18. nape.dynamics.InteractionGroup
  19. 正则表达式收藏(三)之高级技巧
  20. WTD实验(lv9-day15)

热门文章

  1. java通过maven构建项目实现日志生成模拟(三)通过logback 打印日志
  2. ISCC2021 真作假时假亦真
  3. python常用的十进制、16进制之间的转换
  4. Python中递归的最大次数
  5. Python 之杀不死的Shell子进程
  6. linux 进程间通信 dbus-glib【实例】详解二(上) 消息和消息总线(附代码)
  7. Linux cat指令(用于连接文件并打印到标准输出设备上)
  8. 分布式(distributed)是什么意思?
  9. python map(function, iterable, ...) 内置函数的用法 (序列迭代调用并返回)
  10. 反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?