Minify android app but do not obfuscate it

Yes, you can use ProGuard to minify debug builds.

The key is to use -dontobfuscate option in ProGuard configuration for debug build.

Use this setting in build.gradle:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
            'proguard-rules.pro'
    }
    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
            'proguard-rules.pro', 
            'proguard-rules-debug.pro'
    }
}

Write your release ProGuard configuration to proguard-rules.pro.

Use the same configuration for release and debug. This way you ensure that no necessary code is stripped away. And debug minification doesn't break the build.

Add extra ProGuard config file proguard-rules-debug.pro for debug build. It should contain rules used only for debug. In this case add only:

-dontobfuscate

minifyEnabled true

is just a shortcut for:

postprocessing {
    removeUnusedCode true
    obfuscate true
    optimizeCode true
}

So, if you want to minify without obfuscating, replace minifyEnabled true with:

postprocessing {
    removeUnusedCode true
    obfuscate false // <--
    optimizeCode true
}

Additionally, the compiler will complain if you have shrinkResources true. The equivalent postprocessing field is removeUnusedResources true, i.e:

postprocessing {
    removeUnusedCode true
    removeUnusedResources true // <--
    obfuscate false
    optimizeCode true
}

Contrary to other answers, useProguard false does not disable obfuscation; it changes the obfuscation engine from ProGuard to R8.