我正在使用 Cordova-android 12.0.1 并尝试使用 ProGuard 7.3.2 而不是 R8 对其进行混淆。但是,每当我尝试构建时,它都会返回此错误:
Execution failed for task ':app:transformClassesAndResourcesWithProguardTransformForRelease'.
> proguard.ParseException: Expecting separator ';' before 'sProcessGlobalConfig' in line 63 of file '/Users/macuser/Documents/bitbucket/my-app/packages/my-app/platforms/android/app/build/intermediates/proguard/configs/release/consumer-rules.pro'
任何默认配置(正常、优化或调试)都会发生这种情况,并且在为调试或发布构建时也会发生这种情况。这些是我的模块 build.gradle 中的混淆器配置:
proguard {
configurations {
debug {
defaultConfiguration 'proguard-android-debug.txt'
}
release {
defaultConfiguration 'proguard-android.txt'
}
}
}
这些是consumer-rules.pro第60-64行的内容:
60 # Prevent ProcessGlobalConfig and member sProcessGlobalConfig from being renamed, since chromium
61 # depends on this name.
62 -keepnames public class androidx.webkit.ProcessGlobalConfig {
63 private static final * sProcessGlobalConfig;
64 }
知道什么可能导致此错误,以及我应该如何修复它?
发现该规则是由过时版本的 androidx webkit (1.4.0) 设置的。已更新,现已修复。