proguard.ParseException:proguard.cfg 中的未知选项“-encryptstrings”
Posted
技术标签:
【中文标题】proguard.ParseException:proguard.cfg 中的未知选项“-encryptstrings”【英文标题】:proguard.ParseException: Unknown option '-encryptstrings' in proguard.cfg 【发布时间】:2017-02-06 04:45:09 【问题描述】:当我使用 progurad 选项运行 mvn install goal 时,出现以下错误。以前,我没有这个错误。我找不到导致以下错误的原因:
proguard.ParseException: Unknown option '-encryptstrings' in line .. of file 'proguard.cfg'
我正在为我的项目使用 dexguard。这个错误是因为 maven 无法识别 dexguard 文件夹位置吗?
proguard.cfg 内容:
-dalvik -- unknown option
-android -- unknown option
# Encrypt all strings -- parse exception
-encryptstrings '???*'
以下工作没有问题:
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic
-optimizationpasses 30
-allowaccessmodification
-dontpreverify
-dontoptimize
-ignorewarnings
-renamesourcefileattribute Maviance
-keepattributes SourceFile,LineNumberTable,*Annotation*
-keep,allowshrinking,allowobfuscation class android.support.**Compat* *;
【问题讨论】:
我也有同样的问题,不过我用的是dexguard,gradle好像改用proguard 【参考方案1】:只有 DexGuard 支持选项 -encryptstrings '???*'
。所以当你使用 ProGuard 构建你的应用程序时,你会收到这样的错误。
因此建议将 dexguard 相关配置分离到单独的配置文件dexguard-project.txt
中,仅在使用 DexGuard 时包含。
【讨论】:
谢谢。我已移至 dexguard-project.txt 文件。我如何让 maven 考虑这个文件?【参考方案2】:我在使用 dexguard 时遇到了同样的错误。问题是我错过了这一行
proguardFiles getDefaultDexGuardFile('dexguard-debug.pro')
所以 gradle 使用了 Proguard 而不是 Dexguard,后者显然没有 encryptstrings 功能。所以工作发布配置是这样的:
release
debuggable true
minifyEnabled true
proguardFiles getDefaultDexGuardFile('dexguard-debug.pro')
signingConfig signingConfigs.release
【讨论】:
以上是关于proguard.ParseException:proguard.cfg 中的未知选项“-encryptstrings”的主要内容,如果未能解决你的问题,请参考以下文章
使用 ProGuard 导出 Android 应用程序会出现 ParseException 错误