依赖于根项目中的 progurad 的原生构建



使用3.0.1版本的Android gradle插件。

我有应用程序模块:app和库模块:lib包含在:app模块中:implementation(project(':lib')) .模块 :lib 具有本机代码。所以,它有:lib:externalNativeBuildRelease任务。我需要使此任务依赖于根模块:app的Proguard任务。

由于本机代码混淆,我需要它。我不使用保持从本机调用的 java 代码的标准方法。我也混淆了它,替换了本机代码。因此,为了正确处理本机代码,我需要在开始本机构建之前由Proguard生成的映射.txt。

好吧,到目前为止还没有答案。我找到了我不喜欢的解决方案,但它有效。在:app build.gradle

android.applicationVariants.matching {
    it.buildType.name == android.buildTypes.release.name
}.whenObjectAdded {
    Task nativeBuildTask = tasks.getByName('externalNativeBuildRelease')
    Task libNativeBuildTask = project(':lib')
            .getTasksByName('externalNativeBuildRelease', true)
            .first()
    tasks.matching { Task task ->
        task.name.contains('Proguard') 
                && task.name.contains('Release')
    }.all { Task proguardTask ->
        nativeBuildTask.dependsOn proguardTask
        libNativeBuildTask.dependsOn proguardTask
    }
}

希望有人能找到更好的方法。

最新更新