Activity类的ManifestPlaceholders

时间:2017-02-08 10:18:04

标签: android gradle android-gradle manifest

我试过以下:

gradle.buid

android {
     defaultConfig {
        manifestPlaceholders = [ launchActivityName:".ui.activities.MainActivity"]
    }
}

清单

 <activity
        android:name="${launchActivityName}"
        ...>
 </activity>

似乎我无法将manifestPlaceholders用于活动类。我的问题还有其他解决办法吗?

我想根据构建类型或风格决定哪个活动是主要活动......

2 个答案:

答案 0 :(得分:0)

我认为但不是优化的解决方案是在您的口味中创建buildConfigField变量, buildConfigField 'String', 'FLAVOR', '"prod"'
buildConfigField 'String', 'FLAVOR', '"beta"'
...

创建透明的启动活动
在此活动中,您测试BuildConfig.FLAVOR值以决定您要开始的活动

答案 1 :(得分:0)

可以将manifestPlaceholders用于活动名称,但尝试仅使用类名称,而不使用包。 就我而言,这可行:

productFlavors {
        someFlavor {
            manifestPlaceholders = [ launchActivityName:"MainActivity"]
        }

    }