我有一个需要使用自定义程序包和自定义配置文件构建的应用程序。我看了一下互联网,发现了gradle flavors
,但我无法弄清楚如何使用它们。
基本上我有一个包含com.example.apps.myapp
的应用。我需要使用不同的包com.example.apps.myapp2
和自定义配置类(如com.example.config.myapp2.Configuration
我目前在我的build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "com.example.apps.myapp"
minSdkVersion 15
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':api')
compile project(':view-pager-indicator')
compile project(':MaterialEditText')
compile 'com.pkmmte.view:circularimageview:1.1'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21+'
compile 'com.android.support:cardview-v7:21.+'
compile 'com.facebook.android:facebook-android-sdk:3.21.1'
compile 'com.mauriciogiordano:easydb:0.1.0'
}
创建一个gradle任务或者某些东西来进行这些更改并构建应用程序有多容易? PS:我对gradle一无所知。
谢谢。
答案 0 :(得分:1)
在build.gradle中很容易声明风味
仅来自官方文档Gradle Plugin User Guide。
对于不同的配置,包括buildConfigField
。您可以在代码的任何部分从 BuildConfig.FieldName 中读取此字段。
productFlavors {
flavor1 {
applicationId "com.example.apps.myapp"
buildConfigField "int", "CONFIG_INT", "123"
buildConfigField "String", "CONFIG_STRING", "\"ABC\""
}
flavor2 {
applicationId "com.example.apps.myapp2"
buildConfigField "int", "CONFIG_INT", "456"
buildConfigField "String", "CONFIG_STRING", "\"QWE\""
}
}
访问字段
BuildConfig.CONFIG_INT
BuildConfig.CONFIG_STRING
请勿忘记按同步按钮(从“保存”右侧)以使用新字段重建BuildConfig。在最新版本的gradle中,可以声明 Android资源 Watch there。
从构建变体
切换flavoirs Android Studio中的