我正在尝试在项目中添加两种口味,我已经有了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"
    }
}


希望这能解决您的问题;)

08-04 23:56