26

使用 gradle wrapper 2.10 和 Android Gradle 构建工具2.0.0-beta7 2.1.0

从我的 build.gradle:

buildTypes {
        all{
            minifyEnabled  true
            proguardFiles = [getDefaultProguardFile("proguard-android.txt"), 'proguard-project.pro'];
        }
    }

这行得通。事情被混淆了。

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

-printmapping my-mapping.txt

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

Printing mapping to [C:\path\to\my\project\build\outputs\mapping\debug\mapping.txt]

这个语法有改变吗?

注意:我尝试提供直接路径。我试过提供不带连字符的名称。没有什么变化。

现在我只是为它做了一个 gradle 复制任务。

4

5 回答 5

10

location 的映射文件build\outputs\mapping\debug\mapping.txt是默认生成的,即使您没有指定-printmapping my-mapping.txtinside也是如此proguard-project.pro。我看到这个名字总是mapping.txt-printmapping新的 Android Studio 版本忽略。

我记得它曾经在存在的同一个项目根文件夹中生成,proguard-project.pro但我确认,它现在不会在 Android Studio 2.0 中生成,并且是一个你可以在Android Issue Tracker提交的错误。


更新

链接到 Android 问题:https ://code.google.com/p/android/issues/detail?id=205213

于 2016-03-24T06:51:59.613 回答
3

面临同样的问题,但似乎

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

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

于 2016-03-01T08:55:48.063 回答
0

从 Android Studio 3.5.3 和 AGP 3.5.3 开始,该-printmapping参数受到尊重。

例如使用:

-printmapping mapping.txt

它是从默认值复制而来的:

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

至:

{projectRoot}\mapping.txt

于 2019-12-10T10:43:33.750 回答
0

也许您可以更改为以下内容

android {
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'some-other-rules.txt'
            //proguardFile 'some-other-rules.txt' 
        }
    }
}
于 2016-03-07T17:42:18.480 回答
-1

只需尝试以管理员身份启动 Android Studio。

-printmapping

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

于 2016-03-30T03:03:43.047 回答