laa*_*ptu 10 android gradle build.gradle
这是我的情况
productFlavors {
paid {
applicationId "com.paid.app"
}
free {
applicationId "com.free.app"
}
}
Run Code Online (Sandbox Code Playgroud)
并且在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>
Run Code Online (Sandbox Code Playgroud)
当我开始在paid构建变体中安装应用程序时,它总是安装两个应用程序,即免费和付费但具有相同的应用程序名称.当我卸载任何一个时,应用程序都会被卸载.不仅应该paid变种构建付费应用程序和free变体构建一个免费的应用程序?以下是我的工作环境
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
Android Studio 1.4 beta 2
Run Code Online (Sandbox Code Playgroud)
Mih*_*nca 18
实际上你可以做到这一点,有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>
Run Code Online (Sandbox Code Playgroud)
支付/ 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>
Run Code Online (Sandbox Code Playgroud)
意味着在清单合并为付费风格时,您将从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>
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您将有2个图标来启动您的应用程序.一个用于MainActivity,一个用于SecondActivity.
如果您想为每种风味添加不同的活动,则必须在每种风味中使用相同的活动.
app/src/free/java/..../MainActivity
app/src/paid/java/..../MainActivity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5603 次 |
| 最近记录: |