在构建我的android项目时,我已将以下内容添加到build.gradle文件中以启用proguard:
buildTypes {
release {
runProguard true
proguardFile 'proguard-project.txt'
proguardFile '../common/proguard-shared.txt'
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
所有内容都构建正常但是当我反汇编生成的dex文件时,结果是混淆和非混淆的文件都存在。
例如,common.Base64和common.a都存在,第一个是非混淆的,而第二个是。
不确定其相关性,但项目本身具有非典型结构。 这是我们拥有超过40个Android应用程序的大型Android代码库的结果。 我们正在尝试创建一个基于gradle的构建流程,它与现有的基于Eclipse的构建并行。
如果一切顺利,我们打算将文件结构更改为更本机的gradle,并开始使用flavor和build-types来解决我们创建的许多库以适应缺乏风味等等。
以上项目E依赖于这样的一系列图书馆:
E - > D - > C - > B - >甲
e.g。 E项目取决于库D,它依赖于库C ......一直到A。
答案 0 :(得分:7)
在研究之后,我发现如果你首先在没有启用proguard的情况下构建,然后在启用它的情况下构建它,这就是一个问题。这是由于dex的增量模式。
启用proguard后你可以做一个干净的构建,它会解决这个问题。
编辑:我之前曾表示你可以在dex中禁用增量模式,但事实证明这实际上没有帮助!