Android Studio 1.0.1中的Android注释和风格

时间:2015-02-06 09:28:54

标签: android android-studio android-annotations android-productflavors

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

1 个答案:

答案 0 :(得分:3)

我自己现在使用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"
    }
}

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