Android 使用productFlavors设置compileSdkVersion和targetSdkVersion

Android 使用productFlavors设置compileSdkVersion和targetSdkVersion,android,gradle,android-gradle-plugin,build.gradle,Android,Gradle,Android Gradle Plugin,Build.gradle,我们的应用程序使用build.gradle文件中的产品风格来调整不同设备的配置。我已经阅读了中有关flavors的文档,并尝试使用android.setCompileSdkVersion(…)设置compileSdkVersion。然而,当我在applicationVariants.all中打印编译版本时,这似乎并不适用于不同的风格 我已经考虑过添加一个类似于什么的预处理器任务,但如果可能的话,我希望避免使用这种方法 任何指导或帮助都将不胜感激。为不同版本的Android构建不同的APK似乎是一

我们的应用程序使用build.gradle文件中的产品风格来调整不同设备的配置。我已经阅读了中有关flavors的文档,并尝试使用android.setCompileSdkVersion(…)设置compileSdkVersion。然而,当我在applicationVariants.all中打印编译版本时,这似乎并不适用于不同的风格

我已经考虑过添加一个类似于什么的预处理器任务,但如果可能的话,我希望避免使用这种方法


任何指导或帮助都将不胜感激。

为不同版本的Android构建不同的APK似乎是一种奇怪的策略。我建议构建一个单一的APK,其中包含(a)在Java中以不同方式处理事情的逻辑,以及(b)根据API版本提供不同的资源。尝试更改CompileSDK版本没有意义——您不希望针对不同版本的SDK构建不同的风格。不过,您应该能够在每种口味的基础上设置targetSdkVersion。谢谢您的输入。如果我要更改targetSDK,Android studio在哪里查找该值,即我应该将customAndroid.jar放在哪个目录中,以便编译器识别它。这里有没有我不知道的语法,比如build.gradle的dependency部分,我可以在这里指定一个本地文件,如果你正在为FirePhone和常规Android设备进行构建,这不是一个牵强的想法。FirePhone的问题是,如果您想使用这些奇特的小部件,它需要编译dkversion“Amazon.com:Amazon Fire Phone SDK Addon:17”。因此,如果将源代码拆分一点,理论上应该可以在同一个构建脚本中为两个平台编译。