当前位置: 首页 > 知识库问答 >
问题:

Android Gradle 2.2不允许签名APK的收缩资源

厉成仁
2023-03-14

作为Android Studio 2.2推出的一部分,我将Gradle Build工具更新到v2.2。在此之后,我的签名APK构建过程失败,因为我有收缩资源=true。

一旦我切换回Gradle v2.1.3或设置收缩资源=假,一切都很好。这是我的应用程序gradle构建文件:

    android {
    signingConfigs {

    }
    compileSdkVersion 24
    buildToolsVersion '24.0.0'
    defaultConfig {
        applicationId "com.sample.testapp"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 4
        versionName "0.0.4"
    }
    buildTypes {
        release {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            proguardFile 'C:/Users/code/testapp/app/proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

Gradle设置为v2.2,这是我在生成签名APK时遇到的构建错误。

有人知道为什么会发生这种情况吗?如果有解决办法的话?我在谷歌上搜索了一下,看到一些关于alpha和beta Gradle版本有这个问题的较旧的Android Bug报告,但我发现的报告是

P.S .我知道minifyEnabled = false目前,我还没有为我包含的库研究正确的proguard规则集,以防止签名的构建由于缺少库而出错。

共有2个答案

郑乐池
2023-03-14

使用

minifyEnabled false
shrinkResources false

minifyEnabled true
shrinkResources true

可能是Android分级插件上的一个错误

等待谷歌修复bug

端木令雪
2023-03-14

要使用shrinkResources,您必须使用minifyEnabled

根据Android文档:

资源收缩仅与代码收缩结合使用。在代码缩减器删除所有未使用的代码后,资源缩减器可以识别应用仍在使用哪些资源。在添加包含资源的代码库时尤其如此 — 必须删除未使用的库代码,以便库资源变为未引用状态,因此可由资源收缩器删除。

若要启用资源收缩,请在 build.gradle 文件中将“收缩资源”属性设置为 true(旁边是“缩小代码收缩启用”)。

 类似资料:
  • Apk在升级和添加另一个模块后与旧版本运行良好,我得到了这个错误 这是我的proguard规则,我已经定义了应用程序的前一个版本,运行良好,我添加了新的东西,但没有什么可以帮助我,任何人可以帮助这个问题,我被困在过去几天。

  • 我正在尝试构建我的第一个签名APK以供发布,但出现了一些错误。看起来效果很好,但现在我就是无法生成APK。我做了研究,但什么也没找到。 Gradle版本:4.8,Android插件版本3.1.4,这是我的应用程序Gradle屏幕截图:link 这来自assembleDebug: 我曾经有过布局和不赞成使用的功能的其他问题,但我解决了它。其中一个就这样消失了,但我什么也没做:-) 我已经尝试过的事情

  • 我试图得到以下每个元素使用 inspect元素的输出如下。 但是它失败了,并抛出下面的错误。 另外,我如何遍历每个类?每个类都包含子部分,我想在进入下一个类之前进一步单独处理这些子部分。

  • 将android studio更新到3.0版(windows)后,我无法生成已签名的APK。 构建完成后,我会收到以下消息: 单击“定位”会将我带到应用程序文件夹,但找不到APK。 发生了什么变化?

  • 我在服务器上有一个自签名的grpc服务,并使用dart客户端在dart服务器上运行。但我不知道如何绕过或允许节点客户端的自签名证书。。我试过这个: 但当我调用时,我的验证checkServerIdentity没有调用。 有人有线索吗?