Sentry的分级任务未编译

问题描述 投票:2回答:1

我必须将Analytics工具Sentry添加到我们的Android项目中。为了使其工作,需要为混淆的代码(从Proguard / R8)创建映射,然后将其上传到Sentry。

在网站https://docs.sentry.io/platforms/android/上甚至描述了如何执行此操作。上面写着,需要创建一个gradle任务,如下所示:

gradle.projectsEvaluated {
    android.applicationVariants.each { variant ->
        def variantName = variant.name.capitalize();
        def proguardTask = project.tasks.findByName(
            "transformClassesAndResourcesWithProguardFor${variantName}")
        def dexTask = project.tasks.findByName(
            "transformClassesWithDexFor${variantName}")
        def task = project.tasks.create(
                name: "processSentryProguardFor${variantName}",
                type: Exec) {
            workingDir project.rootDir
            commandLine *[
                "sentry-cli",
                "upload-proguard",
                "--write-properties",
                "${project.rootDir.toPath()}/app/build/intermediates/assets" +
                    "/${variant.dirName}/sentry-debug-meta.properties",
                variant.getMappingFile(),
                "--no-upload"
            ]
        }
        dexTask.dependsOn task
        task.dependsOn proguardTask
    }
}

这将等到Proguard完成后,再将此属性文件复制到资产中。但是,当我将此添加到我的Android Gradle脚本时,出现错误:

无法创建任务':app:processSentryProguardForPlayStoreStagingDebug'。

没有方法签名:java.util.ArrayList.multiply()适用于参数类型:(ArrayList)值:[[sentry-cli,upload-proguard,--write-properties,{Application-Path} /app/build/intermediates/assets/playStoreStaging/debug/sentry-debug-meta.properties,...]]可能的解决方案:乘法(java.lang.Number),相乘(java.lang.Number)

我假设在commandLine数组之前,乘法符号*存在问题。但是当我删除它时,出现错误

无法创建任务':app:processSentryProguardForPlayStoreStagingDebug'。

无法将具有类'java.lang.String'的对象'sentry-cli'强制转换为类'int']

所以我试图只用那条线来测试]

commandLine "sentry-cli", ...

哪个给了我另一个错误

出了什么问题:无法在空对象上调用方法dependsOn()

因此,我认为该gradle脚本确实出了点问题,因为似乎找不到依赖项任务。是否有人知道如何解决此问题(或者有其他想法,一旦Proguard / R8完成,如何将sendry-debug-meta.properties文件复制到我的资产中)?

谢谢!

我必须将Analytics工具Sentry添加到我们的Android项目中。为了使其工作,需要为混淆的代码(从Proguard / R8)创建映射,然后将其上传到Sentry。在...

android gradle proguard sentry android-r8
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.