Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
442 views
in Technique[技术] by (71.8m points)

android - 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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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/

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...