Dick Lucas
Dick Lucas

Reputation: 12639

Reference different assets based on build flavor

I am able to get the correct api_key.txt on debug builds because that is a buildType. However I am unable to get this working with the productFlavor amazon.

I’ve tried doing this in my build.gradle file which compiles but it will not actually reference the correct file at run time:

sourceSets {
amazon {
  assets.srcDirs = ['app/src/amazon/assets']
}

Here is my folder structure:

folder structure

How can I reference api_key.txt in the amazon/assets folder when my product flavor is amazon?

All help is greatly appreciated, thank you.

Upvotes: 8

Views: 8083

Answers (2)

Mayur Patel
Mayur Patel

Reputation: 2326

Based on this https://developer.android.com/studio/build/build-variants document you want this type of hierarchy structure of your application. Remove assets.srcDirs from all build flavours and you can try with this kind of structure.

buildTypes {
  release {
    // ... the usual stuff here
  }
  releaseAlt {
    // .. the usual stuff here too like signing config etc...
  }
}

file hierarchy You should have like :

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/

Upvotes: 11

Ravindra-Ravi Verma
Ravindra-Ravi Verma

Reputation: 535

I think you should write "src/amazon/assets" instead of "app/src/amazon/assets".

sourceSets {
amazon {
  assets.srcDirs = ['/src/amazon/assets']
}

Upvotes: 3

Related Questions