针对每种产品风格使用不同的Android SDK(库存和定制)

针对每种产品风格使用不同的Android SDK(库存和定制),android,android-gradle-plugin,android-productflavors,Android,Android Gradle Plugin,Android Productflavors,我需要针对一个经过AOSP修改的特定设备,针对股票Android SDK和自定义Android SDK构建我的应用程序 我的想法是在我的build.gradle中使用产品风格,有条件地指向正确的SDK目录。基本上,我在寻找的是: productFlavors { stock { sdk.dir "/path/to/stocksdk" } mydevice { sdk.dir "/path/to/customsdk" } } 查看P

我需要针对一个经过AOSP修改的特定设备,针对股票Android SDK和自定义Android SDK构建我的应用程序

我的想法是在我的
build.gradle
中使用产品风格,有条件地指向正确的SDK目录。基本上,我在寻找的是:

productFlavors {
    stock {
        sdk.dir "/path/to/stocksdk"
    }
    mydevice {
        sdk.dir "/path/to/customsdk"
    }
}
查看ProductFlavor DSL文档,没有设置SDK目录的属性


还有什么其他方法可以达到类似的结果呢?

有趣的问题,但不幸的是,您不能为
productFlavors
构建类型使用不同的SDK。您只能在项目级别使用它

产品口味可以自定义以下属性:

minSdkVersion
targetSdkVersion
versionCode
versionName
package name (overrides value from manifest)
release signing info (keystore, key alias, passwords,...).
BuildConfig: Ability to provide custom Java code.
NDK ABI filter (Not implemented yet)
test info
package name for test app (optional, default is <base>.test)
InstrumentationTestRunner class (optional)
Additionally, Product Flavor can provide their own source code, resources and manifest.
manifest debuggable flag
native compilation debug flag
proguard enabled + specific rules (Not implemented yet)
debug signing flag (ie whether to use debug key or release key)
package name suffix (2)
version name suffix (new in milestone 0.3)
Buildconfig
DEBUG flag. Set automatically based on the manifest debuggable flag.
Ability to provide custom Java code.

还有什么其他方法可以达到类似的效果

您可以将此项目设置为库项目,然后使用库中的功能创建具有不同SDK的包装器项目。因此,现在您有了一个单独的包装器项目,而不是
productFlavors
,您可以在
local.properties
文件中更改每个包装器项目的
sdk.dir