根据构建类型引用不同的资产

8
我能够在debug构建中获取正确的api_key.txt,因为那是一个buildType。但是,我无法在amazon产品风格中使其正常工作。
我尝试在我的build.gradle文件中实现这一点,虽然它能够编译,但在运行时不会引用正确的文件。
sourceSets {
amazon {
  assets.srcDirs = ['app/src/amazon/assets']
}

这是我的文件夹结构:

folder structure

我产品口味是“亚马逊”,当我需要引用“amazon/assets”文件夹中的“api_key.txt”时,应该怎么做?
非常感谢您的帮助,谢谢。

你是如何构建你的亚马逊风格的? - Sagar
1
尝试将assets.srcDirs = ['app/src/amazon/assets']移除。 - ישו אוהב אותך
2个回答

11
根据这个https://developer.android.com/studio/build/build-variants文档,您希望应用程序具有此类型的层次结构结构。 从所有生成品味中删除assets.srcDirs,并尝试使用这种类型的结构。
buildTypes {
  release {
    // ... the usual stuff here
  }
  releaseAlt {
    // .. the usual stuff here too like signing config etc...
  }
}

你应该拥有类似于文件层次结构的东西:

project/
- app/
 - src/
  - main/
   - assets/
    - logo.png // Generic assets go here
   - java/
   - res/
   - ...

  - flavor1/
   - assets/
    - logo.png // Specific assets for all the flavor1 Variants

  - release/
   - assets/
    - logo.png // Specific assets for all the releaseAlt Variants.

  - flavor1Release/
   - assets/
    - logo.png // very specific assets for the flavor1ReleaseAlt Variant
- SDK/

由于构建类型覆盖了风味,我只需创建名为“amazonRelease”的文件夹即可解决问题。谢谢! - Dick Lucas

3
我认为你应该写"src/amazon/assets"而不是"app/src/amazon/assets"。
sourceSets {
amazon {
  assets.srcDirs = ['/src/amazon/assets']
}

注意:您可能希望将assets.srcDirs = ['src/amazon/assets']设置为没有斜杠的形式,即assets.srcDirs = ['src/amazon/assets'] - sleepystar96

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