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 - 用于调试和发布模式的应用程序图标

Android修改ro.debuggable 真机adb调试所有进程

Android Gradle 插件BuildType 编译类型配置 ② ( consumerProguardFiles 配置 | debuggable 配置 | embedMicroApp配置 )

即使在 debuggable=false 的发布 apk 中,应用程序也可以在 Android 模拟器中调试