[英]Android gradle two different launcher activities for two different product flavors
这是我的情况
productFlavors {
paid {
applicationId "com.paid.app"
}
free {
applicationId "com.free.app"
}
}
并且在paid
味道中,我需要与main
或free
的不同的发射器活动,如下所述
main/AndroidManifest.xml
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
paid/AndroidManifest.xml
<activity
android:name=".SecondMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
当我开始在paid
构建版本中安装应用程序时,它总是安装两个应用程序,即免费和付费但具有相同的应用程序名称。 当我卸载任何一个时,应用程序都会被卸载。 是不是应该paid
变体构建付费应用程序和free
变体构建一个免费的应用程序? 以下是我的工作环境
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
Android Studio 1.4 beta 2
实际上你可以做到这一点,有2个清单文件,没有重复活动:
主/ AndroidManifest.xml中:
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
支付/ AndroidManifest.xml中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.yourpackage">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter tools:node="remove">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".SecondMainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</manifest>
意味着在清单合并为付费风格时,您将从main中删除定义启动器活动的intent-filter,并将其添加到SecondMainActivity。
您没有安装2个应用程序。
使用Manifest中的付费风格,您将合并2个活动与LAUNCHER类别。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
通过这种方式,您将有2个图标来启动您的应用程序。 一个用于MainActivity
,一个用于SecondActivity
。
如果您想为每种风味添加不同的活动,则必须在每种风味中使用相同的活动。
app/src/free/java/..../MainActivity
app/src/paid/java/..../MainActivity
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.