在android中为独立的风格创建单独的apk以在同一设备上运行

时间:2015-10-15 05:29:22

标签: android android-build android-productflavors buildconfiguration build-environment

我已经问了类似的问题但找不到我想要的东西。因此再次询问。 我想在同一台设备上同时运行单独的风味apk。

我使用build.gradle(app)来创建不同风格的apk。但是安装不同风格的相同apk会覆盖前一个版本。我想创建不同的apks以同时在同一设备上运行。我想用不同的appicon创建不同的apk,它可以安装在同一设备上并同时运行。任何链接或教程或直接帮助表示赞赏。

我的build.gradle如下

 productFlavors {
    production {
        applicationId
        "com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }
    staging {
        applicationId
        "staging.com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }
    backendtesting {
        applicationId
        "backendtesting.com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }

}

3 个答案:

答案 0 :(得分:2)

post逐步说明如何配置目录结构和gradle文件。

主要步骤是:

  1. 将产品风味容器添加到应用 build.gradle 文件

    productFlavors { free { applicationId "antoniocappiello.com.buildvariantsexample.free" } paid { applicationId "antoniocappiello.com.buildvariantsexample.paid" } }

  2. 在src内部创建一个目录,其中包含您希望与主变体看起来不同的产品风格的确切名称,例如,在步骤1中的配置可以支付或免费使用目录名称。在该目录中创建子文件夹res / drawable,您将在其中放置新应用启动器图标

  3. Directory structure example

答案 1 :(得分:2)

不要在gradle命令和它的参数之间放置换行符。它会分别读取每一行,因为换行符是gradle的命令分隔符。(就像;对于java的方式而言)

例如,使用:

applicationId "com.abc.def"

而不是

applicationId
"com.abc.def"

答案 2 :(得分:1)

您可以为不同的风格设置不同的applicationId。通过这种方式,不同的风格将被视为不同的应用程序,并且当您将它们安装在同一设备上时,它们不会互相覆盖。

作为一个例子,下面的代码片段将创建两种风格,prod和dev与不同的应用程序包。您可以将它们一起安装在设备上。

N