gpt4 book ai didi

android - Android Gradle插件:productFlavors中的runProguard?

转载 作者:行者123 更新时间:2023-12-03 04:42:19 24 4
gpt4 key购买 nike

我有一个Android库项目和一个使用该库项目的应用程序。在应用程序的build.gradle文件中,我使ProGuard混淆了整个应用程序,包括库项目代码:

//from the app project
buildTypes{
release {
runProguard true
proguardFile 'proguard-project.txt'
}
debug{
runProguard false
}
}

一切运行良好,lib项目和app项目都被混淆。
但是,我想将lib项目构建为“独立”,因此无需应用程序项目即可分发它。当然,这意味着要自己混淆lib项目。

我无法通过在lib-projects buildTypes中使用 build.gradle代码并仅运行proGuard来执行此操作,因为这会破坏应用程序项目的构建,因为然后构建应用程序将再次编译其代码,而混淆的lib-project代码... :-)

如果我以“独立”模式构建lib-project,例如,我需要的是仅运行ProGuard 的可能性。通过传递参数或执行特殊任务。

谁能指出我正确的方向?

最佳答案

我自己解决了。在lib-project的构建文件中,我有两个构建类型,并且将它们都发布:

publishNonDefault true

以及构建类型:
buildTypes {
debug {
debuggable true
runProguard false
}

release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'

}

}

这将导致创建 debugrelease APK。然后,在我的应用程序项目的构建文件中,通过声明依赖关系,向 debug configuration添加显式依赖关系,如下所示:
dependencies{
compile project(path: ':FancyLibProject', configuration: 'debug')
//...
}

当然,在应用程序项目中,我还有两种构建类型:debug和release,它们依次以与lib-project相同的方式调用ProGuard。
注意:我省略了发行版的签名配置-没有这些APK,将无法安装 !

关于android - Android Gradle插件:productFlavors中的runProguard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25525506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com