Gradle:initwith 不适用于 minify 和 proGuard

Posted

技术标签:

【中文标题】Gradle:initwith 不适用于 minify 和 proGuard【英文标题】:Gradle: initwith don't work for minify and proGuard 【发布时间】:2020-06-18 02:44:13 【问题描述】:

在我的代码中,我有 5 种构建类型。在我的情况下,QA 应该 initWith 发布,但这不起作用,因为当我运行 ./gradlew assembleQa 时不会生成 mapping.txt

我到目前为止所尝试的:

qa.initWith(buildTypes.release)
qa  
    ... 

qa  
    initwith release
    ... 

qa  
    initwith buildTypes.release
    ... 

在所有情况下,它都不会从发布中获取属性(因为没有构建映射)

    minifyEnabled true
    proguardFiles 'proguard-android.txt', 'proguard-rules.pro', 'proguard-log.pro'

所以现在我有了这个:

qa 
    ...
    minifyEnabled true
    proguardFiles 'proguard-android.txt', 'proguard-rules.pro', 'proguard-log.pro'
    ...


release 
    ...
    minifyEnabled true
    proguardFiles 'proguard-android.txt', 'proguard-rules.pro', 'proguard-log.pro'
    ...

什么不是很好。我怎样才能使 initWith 有效?谢谢

【问题讨论】:

【参考方案1】:

除了我在一些 Gradle 课程中发现的,看起来像顺序问题(至少在同一个函数中)

所以,在buildTypes 内部,要使 initWith 工作,它需要在之后进行。像这样:

release 
    ...
    minifyEnabled true
    proguardFiles 'proguard-android.txt', 'proguard-rules.pro', 'proguard-log.pro'
    ...


qa 
    ...
    initWith buildTypes.release
    ...

【讨论】:

以上是关于Gradle:initwith 不适用于 minify 和 proGuard的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 导出属性不适用于 Spring 中的 gradle bootRun

Gradle Maven 插件“安装”任务不适用于 Android 库项目

Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀

带有风味的 ext 变量不适用于多维

自定义 WebDAV 服务器不适用于 Windows 7 微型重定向器

Notification.setSound() 不适用于 proguard