Dexguard映射文件未上传为Gradle 3.0+的Android插件

时间:2018-04-11 17:28:34

标签: crashlytics google-fabric

我们正在使用Dexguard和最新的Fabric Gradle Plugin版本1.25.2。但是,当我们使用Android插件为Gradle 2.3.3运行构建时,我们看到gradle任务运行'{namespace}:crashlyticsUploadDeobs {flavor + buildvariant},但是使用Android PLugin for Gradle 3.0.1,我们看不到此gradle任务运行并且Crashlytics中的日志不会被去混淆。

我的假设是,这是将Dexguard映射文件上传到Crashlytics的任务。

我看到Fabric Gradle Plugin version 1.24.0更改日志表明它为Proguard解决了这个问题。可能还有另一个需要在Fabric Gradle插件中解决的Dexguard问题吗?

1 个答案:

答案 0 :(得分:3)

在GuardSquare的帮助下,我能够找出问题所在。 Dexguard 8.1提供了一个'dexguard-partial'插件,可以让你为某些buildType排除dexguard。通过在调试版本中排除dexguard,可以缩短构建时间。但是,这个'dexguard-partial'插件似乎没有被Fabric的Gradle插件识别。因此,将Dexguard映射文件上载到Crashlytics的任务永远不会运行。

我能够通过从'dexguard-partial'切换回'dexguard'插件并添加以下条件检查来确保插件仅包含在Release版本中来解决此问题:

getGradle().getStartParameter().getTaskRequests().toString().contains("Release")

通过为这些构建排除dexguard,这可以缩短调试版本的构建时间。并通过将dexguard包含在发布版本中来解决Crashlytics问题。