【问题标题】:AndroidStudio: add virtual folder in gradleAndroid Studio:在 gradle 中添加虚拟文件夹
【发布时间】:2015-08-11 14:25:58
【问题描述】:

我使用 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 

【问题讨论】:

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

标签: android android-studio gradle android-gradle-plugin


【解决方案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 的解决方案)
猜你喜欢
  • 2021-04-11
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 2015-01-13
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
相关资源
最近更新 更多