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