Dexguard 删除 AndroidManifest.xml

Posted

技术标签:

【中文标题】Dexguard 删除 AndroidManifest.xml【英文标题】:Dexguard removing AndroidManifest.xml 【发布时间】:2019-06-29 10:44:36 【问题描述】:

升级到 Dexguard 8.3(从 8.1)后,Proguard/Dexguard 定义没有任何变化,我们开始看到 androidManifest 从生成的 APK 中剥离,在尝试安装时导致以下错误:

adb: failed to install app-release.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl173476881.tmp/base.apk: AndroidManifest.xml]

我们的定义是:

proguardFile getDefaultDexGuardFile('dexguard-release.pro')
proguardFile 'dexguard-prod.pro' (our own custom)
proguardFile 'proguard-rules.pro' (our own custom)

我已经尝试将以下内容添加到我们自己的 dexguard-prod.pro 文件中(根据 Dexguard 自己的文档,默认配置应包含此内容),但没有帮助:

-keepresourcefiles AndroidManifest.xml

任何想法或帮助将不胜感激。

【问题讨论】:

原来 Dexguard 8.3 并不完全支持 Gradle 3.3.0。降级到 3.2.1 后问题就解决了。 【参考方案1】:

事实证明,Dexguard 8.3 并不完全支持 Gradle 3.3.0。降级到 3.2.1 后问题就解决了。

【讨论】:

DexGuard 8.4 中增加了对 Android gradle 插件 3.3.0 的支持。

以上是关于Dexguard 删除 AndroidManifest.xml的主要内容,如果未能解决你的问题,请参考以下文章

DexGuard 如何加密类?

DexGuard 和矢量绘图

DexGuard/Proguard 混淆注释值

使用 dexguard 加密时,在运行时加载本机库需要更多时间

dexguard 混淆问题

带有 DexGuard 和 spongycastle 的 Java NoClassDefFoundError