Android debuggable=true with proguard 开启
Posted
技术标签:
【中文标题】Android debuggable=true with proguard 开启【英文标题】:Android debuggable=true with proguard is on 【发布时间】:2012-10-11 00:29:31 【问题描述】:由于我的项目太大,我需要运行proguard才能成功编译android。
但是当我设置 android:debuggable="true" 以便我轻松调试时,它会自动关闭 proguard。有什么解决方案或解决方法吗?谢谢你
【问题讨论】:
为什么需要开启 progaurd 来进行调试构建? 我在第一句话中已经解释过了。如果我不运行 proguard,我会达到操作码限制。这是参考:code.google.com/p/android/issues/detail?id=34019 如果你使用 progaurd 调试构建,那么你很难调试代码,因为 progaurd 重命名了方法和变量名。 AFAIK,ADT 会根据 android:debuggable 自动开启和关闭 Progaurd。那么为什么不尝试自己(手动)编译代码呢? 【参考方案1】:遇到了完全相同的问题。幸运的是 Google 帮了我。
现在我的build.gradle
:
// ...
android
// ...
buildTypes
debug
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.txt',
'proguard-rules.debug.txt'
debuggable true
release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.txt'
proguard-rules.debug.txt
:
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-dontobfuscate
-dontoptimize
-dontpreverify
为我工作。希望能帮助到你。 ;-)
【讨论】:
以上是关于Android debuggable=true with proguard 开启的主要内容,如果未能解决你的问题,请参考以下文章
当 debuggable 设置为 true 时,Proguard 不会缩小
Android修改ro.debuggable 真机adb调试所有进程
Android Gradle 插件BuildType 编译类型配置 ② ( consumerProguardFiles 配置 | debuggable 配置 | embedMicroApp配置 )