首页 > 程序开发 > 移动开发 > Android >

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

2017-06-21

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

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

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

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

这里写图片描述

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

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

如果你使用的是 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 构建类型中。

好了,想明白,以上的问题,就知道断点不正常的真相,就是因为代码压缩。至于为什么压缩之后断点为什么不正常的问题,宝宝也不知道。

相关文章
最新文章
热点推荐