gradle Dexguarded Android Library缺少SO文件

hyrbngr7  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(136)

我的问题与构建一个dexguarded Android库有关,其中包含共享对象文件(*.so)。SO文件是我们在库中使用的内部对象文件所必需的。我们库的目标是简化内部库的使用并提供易于使用的API。我们必须对库进行dexguard,以最大限度地降低逆向工程的风险,因为它用于高度安全的应用程序。
无论如何,当我们构建库时,最终产品缺少SO文件。再次声明,我们不直接引用这些SO文件。它们被内部的编译器用作依赖项。
我们发现的工作方法是两次构建我们的gradle目标。
例如,运行此目标,

./gradlew assembleRelease

字符串
将创建一个缺少SO文件的AAR文件。
但是,如果我按顺序执行这些命令,而中间不进行清理,

./gradlew assembleRelease
./gradlew assembleRelease


创建的AAR文件将有SO文件存在。这真的很奇怪。
我的目标是能够只运行一次任务,并有SO文件目前在AAR文件。我已经尝试了许多事情来尝试和解决这个问题,但没有成功。

  • 修改我的dexguard配置为:
  • 使用-keepresourcefiles标志包括我SO文件
  • -encryptnativelibraries(我现在知道为什么这是无用的)
  • 已尝试修改gradle任务图以重新运行assemble任务 which is not possible
  • 尝试创建新的gradle任务以第二次执行某些任务 (与上述相同,不可能)

我尝试了其他我现在想不起来的东西。
无论如何,如果有人看到并解决了这个问题,请让我知道。解决方案现在对我们有效,但这是一个问题,大约半年了,现在没有解决方案,我很想有一个解决方案,而不是一个解决方案.或解释为什么会发生这种情况。

wj8zmpe1

wj8zmpe11#

此问题已在较新版本的Dexguard中解决。升级Dexguard是我们的解决方案。

相关问题