【发布时间】:2016-09-22 16:13:07
【问题描述】:
我正在从 Dexguard 6 升级到 7,并且有一个关于库混淆的问题。使用 Dexguard 6,我可以混淆我的库,它是 Android Studio 中的一个模块,然后在我的应用程序中使用这个模块,并将其作为本地依赖项:
dependencies {
compile project(':sdk')
}
但是,当我尝试使用 Dexguard 7.0.31 执行此操作时,出现异常:
任务“:sdk:transformClassesAndResourcesWithProguardForRelease”执行失败。 > java.io.FileNotFoundException: /lib/dexguard-library-release.pro (没有这样的文件或目录)
【问题讨论】:
-
您是否检查了文件 DEXGUARD-FOLDER/lib/dexguard-library-release.pro 是否存在。如果是这样,那么你在 Gradle 中设置了错误的 DexGuard,如果没有,则从 DexGuard zip 文件中复制它。
-
它是我在 gradle.build 中添加的 dexguard.jar 的一部分:flatDir { dirs 'dexguard/7.0.31/' }。它适用于应用程序,但不适用于本地库项目。
-
编译库时使用 dexguard-library-release.pro 文件而不是 dexguard-release.pro 文件。只需确保文件存在即可。
-
那个文件是 dexguard.jar 的一部分吧?
-
没有。它包含在 lib 目录中的所有 DexGuard 文件中。它只是 DexGuard 用于库的默认配置。当您调用 getDefaultDexGuard 时,您在 Gradle 中引用它...
标签: android proguard obfuscation dexguard