Android 资源包 - gradlew 错误地连接资源目录

问题描述 投票:0回答:1

我有 2 个资源包(长的和不长的),我想根据请求动态下载。

出于某种原因,当我尝试使用以下命令构建捆绑包时,gradle 不会单独查看每个资源包目录,而是将长资源包目录和不长资源包目录组合在一起,就好像它们是一个目录一样:

./gradlew bundleDebug --stacktrace --info

常规应用程序构建按预期工作。 gradle返回的错误是:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:assetPackDebugPreBundleTask'.
...
Caused by: java.nio.file.NoSuchFileException: 

/full/project/path/long/src/main/assets:/full/project/path/notlong/src/main/assets

这两个目录显然是单独存在的,但出于某种原因,gradle 将它们视为一个目录,其名称很长,中间有列。

我的项目结构是:

<project-root>
├── app
│   ├── src
│   └── build.gradle.kts
├── long
│   ├── src
│   │   └── main
│   │       └── assets
│   └── build.gradle.kts
├── notlong
│   ├── src
│   │   └── main
│   │       └── assets
│   └── build.gradle.kts
└── settings.gradle.kts

:应用程序 build.gradle.kts 是:

plugins {
    alias(libs.plugins.androidApplication)
    alias(libs.plugins.jetbrainsKotlinAndroid)
}

android {
    ...
    assetPacks.addAll(listOf(":long", ":notlong"))

    ...
    assets.srcDirs("src/main/assets", "long/src/main/assets", "notlong/src/main/assets")
    }

}

:长构建.gradle.kts:

plugins {
    id("com.android.asset-pack")
}

assetPack {
    packName.set("long")
    dynamicDelivery {
        deliveryType = "on-demand"
    }
}

:不长的build.gradle.kts:

plugins {
    id("com.android.asset-pack")
}

assetPack {
    packName.set("notlong")
    dynamicDelivery {
        deliveryType = "on-demand"
    }
}

settings.gradle.kts:

...
include( "app")
include("long")
include("notlong")

我做错了什么?

android gradle android-gradle-plugin gradle-plugin android-assets
1个回答
0
投票

好吧,这是我见过的最疯狂的事情之一,根本没有记录! 问题源于两个资源包包含相同的后缀!!!!长的和不长的都以“long”结尾! 这就是整个问题!!!! 如果我想用头撞墙,现在就是时候了:) 希望这能为遇到这个令人难以置信的问题的人减少挫败感

© www.soinside.com 2019 - 2024. All rights reserved.