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

Posted

技术标签:

【中文标题】AndroidStudio 2.2 构建 gradle 错误(自定义 proguard 文件的路径)【英文标题】:AndroidStudio 2.2 build gradle error ( path to custom proguard file ) 【发布时间】:2017-02-17 04:07:35 【问题描述】:

以前安装的androidStuio 版本是:2.1.3 但更新到2.2 并更新gradle 后,由于proguard 名称,构建gradle 出现问题。

之前,对于发布 .Apk,我使用自定义 proguard 配置以这种方式:

  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 文件夹路径未更改


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

【问题讨论】:

尝试更改minifyEnabled false -> 清理项目 -> 重建项目。让我知道这是否可行。 @SouravChandra ,清理 + 无效缓存并重新启动,但不起作用! 你能不能换成proguardFiles getDefaultProguardFile('filename.txt'), 'proguard-rules.pro' 也可以试试proguardFile getDefaultProguardFile('fileName.txt') 【参考方案1】:

方式一:

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

在 build.gradle(module:app) 中:

 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 步中,您可以浏览并选择 ProguardFile 以获得 debugrelease

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

【讨论】:

【参考方案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 文件,如消息中所述。 proguard-android.txt 在我的例子中位于 ~/Library/Android/sdk/tools/proguard 。 我认为 android studio 检索该文件。或者您可以在项目文件夹中制作 proguard-android.txt 并在 getDefaultProguardFile 参数中添加路径(虽然我没有尝试过)。 之后,您可以像上面的代码一样添加额外的 proguard 文件。

【讨论】:

以上是关于AndroidStudio 2.2 构建 gradle 错误(自定义 proguard 文件的路径)的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 构建错误(Android Studio 2.2.2)

Android Studio 2.2 Preview 缺少所有屏幕尺寸

Android Studio 构建/清理

Android studio版本对用的gradle版本和插件版本(注意事项)

一篇文章掌握Gradle多项目构建

android studio 没有为三星 4.2.2 构建项目