Proguard Printmapping在Android Studio 2.0.0(和2.1.0)中不起作用

Proguard Printmapping在Android Studio 2.0.0(和2.1.0)中不起作用,android,android-studio,gradle,proguard,android-studio-2.0,Android,Android Studio,Gradle,Proguard,Android Studio 2.0,使用gradle包装器2.10和Android gradle构建工具2.0.0-beta72.1.0 从我的build.gradle: buildTypes { all{ minifyEnabled true proguardFiles = [getDefaultProguardFile("proguard-android.txt"), 'proguard-project.pro']; } } 这很有效。

使用gradle包装器2.10和Android gradle构建工具2.0.0-beta72.1.0

从我的build.gradle:

buildTypes {
        all{
            minifyEnabled  true
            proguardFiles = [getDefaultProguardFile("proguard-android.txt"), 'proguard-project.pro'];
        }
    }
这很有效。事情弄糊涂了

我的proguard-project.pro中还有以下行:

-printmapping my mapping.txt

该文件中的所有其他内容都可以正常工作,但映射一直被打印到错误的位置:

打印映射到[C:\path\to\my\project\build\outputs\mapping\debug\mapping.txt]

这个语法改变了吗

注意:我已尝试提供直接路径。我试着提供一个没有连字符的名字。没有什么变化


现在我只是为它做了一个渐变复制任务

面临同样的问题,但似乎

{projectRoot}\build\outputs\mapping\debug\mapping.txt

现在映射文件的位置正确了

也许您可以更改为以下位置

android {
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'some-other-rules.txt'
            //proguardFile 'some-other-rules.txt' 
        }
    }
}

位置
build\outputs\mapping\debug\mapping.txt
处的映射文件是默认文件,即使在
proguard project.pro
中未指定
-printmapping my mapping.txt
也会生成该文件。我看到名称总是
mapping.txt
,因此新的Android Studio版本忽略了
-printmapping

我记得它以前是在同一个项目根文件夹中生成的,那里有
proguard project.pro
,但我确认,它现在不在Android Studio 2.0中生成,并且是一个可以存档的bug


更新


Android问题链接:

请尝试以管理员身份启动Android Studio

-printmapping

可能不会写入导致此问题的系统文件夹。

从Android Studio 3.5.3和AGP 3.5.3开始,将考虑
-printmapping
参数

例如,使用:

-printmapping mapping.txt
它是从默认值复制的:

{projectRoot}\build\outputs\mapping\release\mapping.txt

致:


{projectRoot}\mapping.txt

什么意思,错误的位置?@RaGe在过去,该行会将映射文件放在项目根目录中。现在,不管这条线指向何处,它总是在build文件夹中打印映射,并且使用错误的名称,我不熟悉它在过去是什么,但是如果你想把它放在一个特定的文件夹中,你应该尝试提供一个绝对路径。至于错误的名称,也许文件名中的连字符是一个问题?尝试用引号括起来。我已经做了所有这些,它没有改变。那么-basedirectory directoryname(在您的proguard.pro文件中。为这些配置参数或此配置文件中的所有后续相对文件名指定基目录。)?这没有什么区别。我觉得该方法只是被破坏了。如果打印映射不再有效,为什么构建会通过呢?似乎有人刚刚提交了它。你能把链接更新到这里吗?