Play Asset Delivery Android资源链接失败-任务:app:linkDebugManifestForAssetPacks的执行失败

问题描述

我正在尝试构建一个音板应用程序。我有很多声音要部署,所以我决定使用Play Asset Delivery。我遵循了Google指南中的说明。

  1. 我在顶层创建了一个资产包文件夹,并将其命名为听起来。这就是我的项目外观

    项目结构:


这是声音目录中的build.gradle文件

apply plugin: 'com.android.asset-pack'

assetPack {
packName = "sounds" // Directory name for the asset pack
dynamicDelivery {
    deliveryType = "[install-time]"
}
}

  1. 更新了我的应用程序build.gradle文件

    android {
    .
    .
    .
    assetPacks = [":sounds"]
    }
    

和我的settings.gradle文件

include ':app'
include ':sounds'

  1. 将资产放置在sounds / src / main / assets

当我尝试构建捆绑包时,我不断收到此错误

成绩错误

这是声音文件夹中的清单

错误的清单:

我尝试清理项目,使缓存无效并重新启动,但似乎无济于事。

解决方法

花费了几个小时后,我成功地构建了捆绑软件。

只需从资产文件夹的build.gradle文件中删除括号

deliveryType = "install-time"


这是Google的Play资产投放示例代码

// In the asset pack’s build.gradle file:
apply plugin: 'com.android.asset-pack'

assetPack {
    packName = "asset-pack-name" // Directory name for the asset pack
    dynamicDelivery {
        deliveryType = "[ install-time | fast-follow | on-demand ]"
    }
}

我认为 deliveryType =“ [install-time]” 是正确的语法。将资产包清单与动态功能清单进行比较后,我意识到gradle会产生错误的dist属性。

这就是我用方括号写deliveryType的结果

<dist:[install-time]/>

这是动态功能清单中的正确语法

<dist:on-demand />

卸下括号就可以了。希望对别人有帮助。