升级到 AGP7+,适配 assets 目录了吗

在这里插入图片描述
我们知道 assets 文件处理的任务是 merge[变体名称]ReleaseAssets,例如:

  • mergeCommonReleaseAssets
  • mergeReleaseAssets
  • mergeDebugAssets

在 AGP 升级过程中,不同的 Android Gradle Plugin 版本打包过程中处理 assets 文件的临时目录可能存在不一致的情况!

在 AGP4+

assets 文件合并的临时目录是在

build/intermediates/merged_assets/commonRelease/out

在这里插入图片描述

在 AGP7.2.0

assets 文件合并的临时目录是在

build/intermediates/assets/release/mergeReleaseAssets

在这里插入图片描述

在 AGP7.4.1

assets 文件合并的临时目录是在

build/intermediates/assets/commonRelease

在这里插入图片描述

路径适配

AGP 升级路径适配是一个要点,当前还没升级测试 AGP8+,可能在路径上也有所变化,实测才能知道。

// AGP4+
// build/intermediates/merged_assets/commonRelease/out
String folderPath = PluginFileUtils.adjustPath(mProject.projectDir.path,
        FileConstant.FILE_DIR_BUILD,
        FileConstant.FILE_DIR_INTERMEDIATES,
        FileConstant.FILE_DIR_MERGED_ASSETS,
        CommUtils.getFirstCharLowercaseStr(CommonManager.getmVariantName()),
        FileConstant.FILE_DIR_OUT)

// AGP7.2.0
// build/intermediates/assets/release/mergeReleaseAssets
String subDirname = "merge" + CommonManager.getmBuildType().capitalize() + "Assets"
String folderPath2 = PluginFileUtils.adjustPath(mProject.projectDir.path,
        FileConstant.FILE_DIR_BUILD,
        FileConstant.FILE_DIR_INTERMEDIATES,
        FileConstant.FILE_DIR_MERGED_ASSETS,
        CommonManager.getmBuildType().toLowerCase(),
        subDirname)
        
// AGP7.4.1
// build/intermediates/assets/commonRelease
String folderPath = PluginFileUtils.adjustPath(mProject.projectDir.path,
        FileConstant.FILE_DIR_BUILD,
        FileConstant.FILE_DIR_INTERMEDIATES,
        FileConstant.FILE_DIR_MERGED_ASSETS,
        CommUtils.getFirstCharLowercaseStr(CommonManager.getmVariantName()))

通常我们在某个 Task 前后插入处理任务以满足需求。

mProject.afterEvaluate {
	Iterator<Task> eIterator = mProject.tasks.findAll().iterator()
	switch (CommUtils.judgeTaskType(theTask.name)) {
	 case TaskType.TASK_MERGE_RELEASE_ASSETS:
		theTask.doLast {
    		processMergeReleaseAssets()
		}
		break
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值