You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启minifyEnabled后生成签名APK报safedkInstrumentationRelease错误如何解决

问题修复方案

任务':app:safedkInstrumentationRelease'(类型为'InstrumentationTask')的配置存在问题。类型为'com.safedk.gradleplugin.tasks.InstrumentationTask'的属性'$9'指定的文件'C:\Users\Junaid\AndroidStudioProjects\SampleApp\app\build\outputs\mapping\release\missing_rules.txt'不存在。

问题原因

该错误是AGP 7.0+版本与旧版SafeDK插件的兼容问题导致:Android Gradle Plugin 7.0及以上版本默认关闭了missing_rules.txt的自动生成逻辑,但旧版SafeDK的混淆插桩任务仍强制读取该固定路径的文件,开启minifyEnabled后触发该任务校验就会报错,关闭混淆后该任务不会执行所以不会触发错误。

修复方案

  • 方案1:手动配置R8生成missing_rules.txt文件(推荐,无需修改依赖版本)

    1. 打开app模块下的proguard-rules.pro文件,添加如下配置:
    -printmissingrules build/outputs/mapping/release/missing_rules.txt
    

    如果你有多个构建变体,需要对应修改路径中的release为对应变体名(如debug、customRelease等)。
    2. (可选)如果执行后仍提示文件不存在,可在app模块的build.gradle文件中添加如下配置,确保混淆任务执行完成后再运行SafeDK插桩任务:

    android {
        // 原有配置保持不变
        tasks.whenTaskAdded { task ->
            if (task.name.contains('safedkInstrumentation')) {
                def variantName = task.name.replace('safedkInstrumentation', '').toLowerCase()
                task.dependsOn "minify${variantName.capitalize()}WithR8"
            }
        }
    }
    

    配置完成后重新执行打包流程即可。

  • 方案2:升级SafeDK插件到最新版本
    旧版本SafeDK未适配AGP7.0+的混淆输出规则,将项目依赖的SafeDK gradle插件升级到官方最新适配版本,即可原生修复该路径校验问题。

  • 临时验证方案:手动创建空文件
    如果需要快速验证打包流程,可以先手动在报错提示的路径下创建空白的missing_rules.txt文件,即可绕过校验。注意该方案仅用于临时测试,项目执行clean操作后文件会被清除,需要重新创建。

内容的提问来源于stack exchange,提问作者Jamshed Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:21:01