删除未使用的资源需要打开未使用的代码缩减

Zar*_*Win 3 android android-resources shrinkresources

我准备发布一个应用程序到生产.所以,我生成了签名的apk.生成签名的apk后,我遇到了问题.我的apk文件大小有点大,我试图缩小apk大小.我已经试过了

app - > Refactor - >删除未使用的资源

它不会太减少.所以,我在build.gradle(app)中添加了shrinkResources true

 buildTypes {
        release {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
Run Code Online (Sandbox Code Playgroud)

添加shrinkResources后,我在重建时遇到了以下错误.我的问题是我应该如何首先打开未使用的代码收缩?谢谢和赞赏.

在此输入图像描述

Sta*_*ool 9

也许您在 buildTypes.debug 中设置错误minifyEnabled = falseshrinkResources = true所以,也许,这是问题的根源,而不是您的 buildTypes.release


Mos*_*ter 8

资源缩减仅适用于代码收缩.在代码缩减器删除所有未使用的代码之后,资源缩减器可以识别应用程序仍在使用哪些资源.添加包含资源的代码库时尤其如此 - 必须删除未使用的库代码,以便库资源不会被引用,因此可以通过资源收缩器移除

要启用资源收缩,请在build.gradle文件中将shrinkResources属性设置为true(与minifyEnabled一起用于代码收缩).例如:

android {
...
buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

}

参考

  • 我已经得到 `minifyEnabled true` 但仍然收到错误 (2认同)

小智 6

android {\n    buildTypes {\n        release {\n            minifyEnabled true\n            shrinkResources true\n        }\n    }\n}\xef\xbb\xbf\n
Run Code Online (Sandbox Code Playgroud)\n