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

Play Asset Delivery Android resource linking failed - Execution failed for task :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

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

Gradle 错误:

这是声音文件夹中的清单

有错误的清单:

我尝试清理项目、使缓存失效并重新启动,但似乎没有任何效果。

花了这么多时间后,我成功地构建了包。

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

deliveryType = "install-time"


这是 Google 的 Play Asset Delivery 示例代码

// 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 />

去掉括号就成功了。希望对大家有帮助。