【问题标题】:exclude a file from assets directory for release build using gradle build script使用 gradle 构建脚本从资产目录中排除文件以进行发布构建
【发布时间】:2018-04-26 15:16:18
【问题描述】:

这是一个 Android 项目。我试图排除资产文件夹下的资源文件。我试过了

"aaptOptions {ignoreAssetsPattern "file.json"}"

但它排除了所有构建变体的文件。

我尝试了以下方法,但还是不行。

android.variantFilter { 变体 -> if (variant.buildType.name.equals('release')) { 变体.mergeAssets.doLast { 删除(fileTree(dir:'assets/filedir',包括:['file.json'])) } } }

请帮忙。非常感谢。

【问题讨论】:

    标签: android gradle build


    【解决方案1】:

    您可以通过查询 BuildConfig 对象来检查您是否处于releasedebug 模式。通过这样做,您可以设置条件验证并排除要针对特定​​ BuildConfig 模式删除的文件:

    if (BuildConfig.RELEASE) 
    {
        // do something, exclude your file
    }
    

    或者,您可以比较 BUILD_TYPE 并以相同的方式使用它:

    if(BuildConfig.BUILD_TYPE.equals("release"))
    {
        // do something, exclude your file
    }
    

    在相关任务中实现这一点,您就可以开始了。还有thisthis 的答案解释了如何很好地实现你想做的事情。

    顺便说一句,您可以像这样将aaptOptions 包装在一个发布闭包中:

    release {
        aaptOptions {
            ignoreAssetsPattern 'file.json' // Your file pattern
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多