【问题标题】:How to ignore unused resources without delete them?如何忽略未使用的资源而不删除它们?
【发布时间】:2017-05-19 02:35:37
【问题描述】:

有一个项目有许多不同颜色的图标,都很好地添加到可绘制资源(ldpi、mdpi、hdpi 等),以及其他一些资源,如布局和空类;对于第一个版本,我没有使用某些特定的图标颜色及其相关活动,但无论如何我都需要在下一个版本中添加这些资源,并且出于更新目的,我可能不得不继续忽略一些资源。

删除和添加资源到可绘制文件可能会很详尽,所以问题是:

有没有办法在没有我们当前未使用的资源的情况下生成发布签名的 apk?

我试过了

应用右键-->重构-->删除未使用的资源

但这只是从整个项目中删除这些未使用的资源。

【问题讨论】:

  • shrinkResources 仅比较可绘制对象是否在文件夹中但不在 R 类中。 (所以尽量不要引用drawable)所以它会在构建APK中删除

标签: android gradle android-resources


【解决方案1】:

将此行添加到您的 proguard 文件 proguard-rules.pro:

-dontwarn com.squareup.okhttp.**

并将您的 build.gradle 更改为:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

在那之后,如果你仍然对 proguard 有问题,是因为你必须在你的 proguard-rules 中添加更多排除项。

【讨论】:

    【解决方案2】:

    将此添加到 Proguard 文件中

    -dontwarn com.squareup.okhttp.**

    改变

    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    picasso lib 明确表示要将其添加到 proguard 文件中

    访问https://github.com/square/picasso

    在哪里可以找到 Proguard 文件?

    【讨论】:

      【解决方案3】:

      此错误与收缩资源无关。都是关于你的 proguard 配置的。

      遗憾的是,我不能只给你所有需要在 proguard.txt 中的东西。因为您添加到项目中的每个依赖项都有自己的 proguard 配置。确保您添加的每个依赖项都有正确的 proguard 配置。

      您可以查看他们的 github wiki 或任何其他网站以获取模板 proguard。

      祝你好运

      埃姆雷

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        • 2015-11-30
        • 2021-05-15
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        相关资源
        最近更新 更多