Android Studio-断点调试-no executable code found at line android

全是泪的前言

今天App线上环境跑的时候出了点问题,我debug了一下release构建环境,然后简直了。
具体表现在:

  1. 代码的有些地方打不上断点

这里写图片描述

  1. 断点有的执行,有的不执行,尤其是方法跳转的地方。

解决问题只需要改变一个属性

如果你使用的是 Android Studio ,检查你的 build.gradle 中要调试构建类型(buildType)中的 minifyEnabled 的值是否为true。

若为true,改为false,即可;

这里写图片描述

问题分析

问题很明显全是 minifyEnabled 在这个属性的锅,但是至于为什么这个属性有这么大的影响,我们还需要问自己以下问题:

1. minifyEnabled 是什么属性?有什么作用

Android Studio 内部集成了 一个叫做 ProGuard 的混淆器,通过设置 ProGuard ,我们可以做两件事情,一是混淆代码,加大反编译的难度保护我们的醒目,二是检测和移除封装应用中未使用的类、字段、方法和属性等,压缩代码和资源,减少 apk 的体积。

minifyEnabled 被用来设置是否使用 ProGuard 压缩代码 ,true 是压缩,false 是不压缩。

2. minifyEnabled 的默认值是什么?

默认是 false

3. minifyEnabled 应该什么时候开启?

当 minifyEnabled = true 时 , ProGuard 启用代码压缩 ,在有效减少 apk 体积的同时,也会拖慢构建速度。所以我们最好是在 打包和发布 apk 的时候使用,一般是用在 release 构建类型中。

好了,想明白,以上的问题,就知道断点不正常的真相,就是因为代码压缩。至于为什么压缩之后断点为什么不正常的问题,宝宝也不知道,这个问题到此为止,以后如果有了解,回头来补上。

晚安,世界。


欢迎关注个人微信公众号「浅浅同学的开发笔记」,最新的博客,好玩的事情,都会在上面分享,期待与你共同成长。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值