使用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复制任务。
答案 0 :(得分:9)
即使您未在build\outputs\mapping\debug\mapping.txt
内指定-printmapping my-mapping.txt
,位置proguard-project.pro
上的映射文件也是默认生成的映射文件。我看到该名称始终为mapping.txt
,因此使用新的Android Studio版本会忽略-printmapping
。
我记得曾经在proguard-project.pro
存在的同一个项目根文件夹中生成但是我确认,它现在不会生成Android Studio 2.0,并且是一个可以在{{3 }}
更新
Android问题链接:Android Issue Tracker
答案 1 :(得分:3)
面对同样的问题,但似乎
{projectRoot}\build\outputs\mapping\debug\mapping.txt
是现在映射文件的正确位置
答案 2 :(得分:0)
也许你可以改为接下来
android {
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'some-other-rules.txt'
//proguardFile 'some-other-rules.txt'
}
}
}
答案 3 :(得分:0)
尝试以管理员身份启动Android Studio。
-printmapping
可能无法写入导致此问题的系统文件夹。
答案 4 :(得分:0)
从Android Studio 3.5.3和AGP 3.5.3开始,遵守-printmapping
参数。
例如使用:
-printmapping mapping.txt
它是从默认值复制的:
{projectRoot}\build\outputs\mapping\release\mapping.txt
收件人:
{projectRoot}\mapping.txt