proguard.ParseException:proguard.cfg中的未知选项'-encryptstrings'

时间:2016-09-28 09:34:57

标签: android-proguard dexguard

当我使用progurad选项运行mvn install目标时,我收到以下错误。以前,我没有这个错误。我找不到导致以下错误的原因:

 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* { *; }

2 个答案:

答案 0 :(得分:1)

只有DexGuard支持选项-encryptstrings '???*'。因此,当您使用ProGuard构建应用程序时,您将收到此类错误。

因此,建议将dexguard相关配置分离为仅在使用DexGuard时包含的单独配置文件dexguard-project.txt

答案 1 :(得分:0)

我使用dexguard时遇到了同样的错误。问题是我错过了这一行

            proguardFiles getDefaultDexGuardFile('dexguard-debug.pro')

所以Gradle采用了Proguard而不是Dexguard,它显然没有加密串功能。因此工作版本配置如下:

  release {
            debuggable true
            minifyEnabled true
            proguardFiles getDefaultDexGuardFile('dexguard-debug.pro')
            signingConfig signingConfigs.release
        }