Android为两种不同的产品口味分配了两种不同的发射器活动 [英] Android gradle two different launcher activities for two different product flavors

查看:138
本文介绍了Android为两种不同的产品口味分配了两种不同的发射器活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



  productFlavors {
paid {
applicationIdcom.paid.app

免费{
applicationIdcom.free.app
}
}

支付 flavor我需要一个不同的启动器活动,与 main
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $主要/ AndroidManifest.xml

< activity
android:name =。MainActivity
android:label =@ string / app_name>
< intent-filter>
< category android:name =android.intent.category.LAUNCHER/>
< / intent-filter>
< / activity>

paid / AndroidManifest.xml

< activity
android:name =。SecondMainActivity
android:label =@ string / app_name >
< intent-filter>

< category android:name =android.intent.category.LAUNCHER/>
< / intent-filter>
< / activity>

当我开始在付费构建变体,它总是安装两个应用程序,即免费和付费,但具有相同的应用程序名称。而当我卸载任何一个,这两个应用程序被卸载。不仅应该支付变种建立一个付费应用程序和免费变种建立一个免费的应用程序?以下是我的工作环境

 依赖关系{
classpath'com.android.tools.build:gradle:1.3.0 '
}
Android Studio 1.4 beta 2


解决方案

您没有安装2个应用程序。

在您的Manifest中使用付费风格,您将合并2个活动与LAUNCHER类别。

 < intent-filter> 
< category android:name =android.intent.category.LAUNCHER/>
< / intent-filter>

通过这种方式,您将拥有2个图标来启动您的应用程序。一个用于 MainActivity ,一个用于 SecondActivity



如果您想为每种口味提供不同的活动,则必须在每种口味中使用相同的活动。

  app / src / free / java /..../ MainActivity 
app / src / paid / java / .... / MainActivity


This is my case

productFlavors {
    paid {
        applicationId "com.paid.app"
    }
    free {
        applicationId "com.free.app"
    }
}

and in paid flavor I need a different launcher activity in comparison to main or free as done below

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>

And when I begin to install app in paid build variants, it always install two apps i.e. free and paid but with same app name. And when I uninstall any one , both the app gets uninstalled. Shouldn't only paid variant build a paid app and free variant build a free app? Following is my working environment

  dependencies {
    classpath 'com.android.tools.build:gradle:1.3.0'
   }
  Android Studio 1.4 beta 2

解决方案

You are not installing 2 apps.

Using the paid flavor in your Manifest you will merge 2 Activities with the LAUNCHER category.

 <intent-filter>
            <action android:name="android.intent.action.MAIN" />    
            <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>

In this way you will have 2 icons to launch your app. One for the MainActivity,one for the SecondActivity.

If you want a different Activity for each flavor,you have to use the same Activity in each flavor.

app/src/free/java/..../MainActivity
app/src/paid/java/..../MainActivity

这篇关于Android为两种不同的产品口味分配了两种不同的发射器活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆