繁体   English   中英

播放资产交付 Android 资源链接失败 - 任务执行失败:app:linkDebugManifestForAssetPacks

[英]Play Asset Delivery Android resource linking failed - Execution failed for task :app:linkDebugManifestForAssetPacks

我正在尝试构建一个音板应用程序。 我有很多声音要部署,所以我决定使用 Play Asset Delivery。 我按照谷歌指南中的说明进行操作。

  1. 我在顶层创建了一个资产包文件夹并将其命名为 sound。 这就是我的项目的样子

    项目结构:


这是sounds目录中的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. 将资产放在声音/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 />

删除括号就可以了。 希望它可以帮助某人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM