【问题标题】:Play Asset Delivery Android resource linking failed - Execution failed for task :app:linkDebugManifestForAssetPacksPlay Asset Delivery Android 资源链接失败 - 任务执行失败:app:linkDebugManifestForAssetPacks
【发布时间】:2020-08-13 18:37:12
【问题描述】:

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

  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. 将资产放置在sounds/src/main/assets中

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

分级错误:

这是声音文件夹中的清单

有错误的清单:

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

【问题讨论】:

    标签: java android android-app-bundle


    【解决方案1】:

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

    只需从资产文件夹的 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 />
    

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

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 2019-06-27
      • 2019-06-06
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多