AndroidStudio:在gradle中添加虚拟文件夹

12

我使用 build.gradle 文件将我的电脑上的几个文件夹收集到我的应用程序的资产文件夹中:

sourceSets {
    main {
        assets.srcDirs = ['../someFolder/', 'src/main/assets']
    }
}

这导致我的资产文件夹包含了someFolder的文件和“原始”资产文件夹:

//The "physical" folders

../someFolder
  |- file1.txt
  |- file2.txt
  |- file3.txt
src/main/assets
  |- asset1.txt

//...become this:

assets
  |- file1.txt
  |- file2.txt
  |- file3.txt
  |- asset1.txt 

我该如何在Gradle中重定向路径,以便我的资源文件夹包含一个名为“someFolder”的文件夹,其中包含来自someFolder的所有文件,例如:

assets
  |- someFolder
  |--- file1.txt
  |--- file2.txt
  |--- file3.txt
  |- asset1.txt 

虚拟文件夹是一个并不存在的文件夹,或者说是我们可以在以后“覆盖”它的虚拟文件夹? - Jared Burrows
虚拟,指“并不存在的”。 - PhilLab
1
我认为这不是gradle单独可以实现的。如果您正在使用Linux机器或Mac,您可以使用符号链接。应该有一种方法可以通过Exec任务在gradle配置时间触发命令,从您的源文件创建符号链接到目标文件夹 https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html - Steffen Funke
1个回答

1

1)在项目中创建文件夹作为外部资产,路径为./extAssets

sourceSets.main.assets.srcDirs = ['src/main/assets', './extAssets']

2)将所有外部目录链接到此文件夹中

$ cd extAssets/
$ ln -s ../../someFolder/ someFolder

作为结果,您将会看到:

assets
  |- someFolder
  |--- file1.txt
  |--- file2.txt
  |--- file3.txt
  |- asset1.txt 

不需要任何文件复制


不错的Linux想法!不幸的是它不是跨平台的(或者换句话说:没有Windows的解决方案)。 - PhilLab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接