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

Yam*_*yın 3 java android android-app-bundle

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

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

    项目结构:


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

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

assetPack {
packName = "sounds" // Directory name for the asset pack
dynamicDelivery {
    deliveryType = "[install-time]"
}
}
Run Code Online (Sandbox Code Playgroud)
  1. 更新了我的应用程序 build.gradle 文件

    android {
    .
    .
    .
    assetPacks = [":sounds"]
    }
    
    Run Code Online (Sandbox Code Playgroud)

和我的 settings.gradle 文件

include ':app'
include ':sounds'
Run Code Online (Sandbox Code Playgroud)
  1. 将资源放置在sounds/src/main/assets 中

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

梯度错误:

这是声音文件夹中的清单

清单有错误:

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

Yam*_*yın 6

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

\n

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

\n
deliveryType = "install-time"\n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n

这是 Google Play Asset Delivery 的示例代码

\n
// In the asset pack\xe2\x80\x99s build.gradle file:\napply plugin: 'com.android.asset-pack'\n\nassetPack {\n    packName = "asset-pack-name" // Directory name for the asset pack\n    dynamicDelivery {\n        deliveryType = "[ install-time | fast-follow | on-demand ]"\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我认为 deliveryType =“[安装时间]” 是正确的语法。将我的资源包清单与动态功能的清单进行比较后,我意识到 gradle 生成了错误的 dist 属性。

\n

这就是我用括号编写的 DeliveryType 得到的结果

\n
<dist:[install-time]/>\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
<dist:on-demand />\n
Run Code Online (Sandbox Code Playgroud)\n

去掉括号就成功了。希望它能帮助某人。

\n