Android Android Studio 1.0.1 中的注释和风格

Android annotations and flavors in Android Studio 1.0.1

我正在尝试在我的项目中添加两种风格,我已经有 android 注释并且它在没有帮助的情况下工作正常,但是当我添加这两种支持时 MainActivity_ class仅在更改构建变体时为其中一种口味生成。 关于如何添加风味并仍然使用注释的任何想法?

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"
    }
}

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