我正在尝试在项目中添加两种口味,我已经有了android批注,并且在没有任何偏爱的情况下也可以正常工作,但是当我添加两种口味时,在更改构建变体时,仅为其中一种口味生成MainActivity_类。
关于如何添加口味并仍然使用注释的任何想法?
Android批注版本为“ 3.2”
我的gradle中的android部分看起来像这样
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
packagingOptions {
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
defaultConfig {
applicationId "$PackageName"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
flavor1 {
}
flavor2 {
}
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName "$PackageName"
}
}
最佳答案
我自己使用AndroidAnnotations已有一段时间,并且我有一些项目也需要产品风格。到目前为止,我设法使它起作用。
我的猜测是您在apt中错误配置了resourcePackageName。
这是我在(截断的)build.gradle文件中执行的操作:
ext {
APP_NAME = "your app name here"
}
defaultConfig {
applicationId APP_GROUP
versionName APP_VERSION
versionCode 1
minSdkVersion 12
targetSdkVersion 21
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName android.defaultConfig.applicationId
}
}
您可能还希望为使用的每种口味都有一个自定义的applicationId。您可以这样操作:
productFlavors {
flavor1 {
applicationId android.defaultConfig.applicationId + ".flavor1"
}
flavor2 {
applicationId android.defaultConfig.applicationId + ".flavor2"
}
}
希望这能解决您的问题;)