AndroidStudio 2.2 构建 gradle 错误(自定义混淆器文件的路径)

AndroidStudio 2.2 build gradle error ( path to custom proguard file )

以前安装的 AndroidStuio 版本是:2.1.3 但在更新到 2.2 和更新 gradle 之后,构建 gradle 有问题因为混淆器名字.

之前,为了发布 .Apk,我通过这种方式使用自定义混淆器配置:

  buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('fileName.txt')
    }
}

但在将 AndroidStudio 2.1.3 更新为 2.2 后出现此错误:

Error:(17, 0) User supplied default proguard base extension name is unsupported. 
Valid values are: [proguard-android.txt, proguard-android-optimize.txt]
Open File

请注意: 更新从以前版本导入的设置和配置文件后 SDK 文件夹路径不是 chnage


老办法!
不幸的是,最后,我不得不使用旧版本的 AndroidStudio(2.1.3) 和 这项工作但不是 AndroidStudio 2.2

的解决方案

尝试像下面这样改变

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt') fileName.txt // or file('{path_to_file}/fileName.txt')
    }
}

猜测它支持 proguard-android.txt 或 proguard-android-optimize.txt 作为默认混淆文件,如消息中所述。

在我的例子中,proguard-android.txt 位于 ~/Library/Android/sdk/tools/proguard 中。
我认为 android studio 检索该文件。或者您可以在项目文件夹中制作 proguard-android.txt 并在 getDefaultProguardFile 参数中添加路径(虽然我还没有尝试过)。

之后你可以像上面的代码一样添加额外的混淆文件。

方式 1 :

经过多次测试,我发现我应该将完整路径设置为 proguard file,如下面的配置:

在build.gradle(模块:应用程序)中:

 buildTypes {
    release {
        minifyEnabled true
        proguardFile ('FullPath/.../configFileName.txt')
    }
}

,无需在路径前使用 getDefaultProguardFile

同样,您可以将 config file 粘贴到 ...\appName\app 并将 proguardFile 更改为:

 proguardFile ('configFileName.txt')

实际上,默认路径是 .../appName/app,如果您只输入 configFileName,这将在默认项目路径中搜索文件名。

在以前的版本中我没有这个问题,default gradle path...\SDK\tools\proguard


更新

方式 2 : 在下图和第 4 步中,您可以浏览 select ProguardFile 以获得 debugrelease

并且在build.gradle(module:app)文件中,ProguardFile路径会自动添加