1

我已经问过类似的问题但找不到我想要的。于是又问。我想同时在同一设备上运行单独的风味 apk。

我使用 build.gradle(app) 来创建不同风格的 apk。但是安装不同风格的相同 apk 会覆盖前一个。我想创建不同的 apk 以同时在同一设备上运行。我想用不同的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/"'
    }

}
4

3 回答 3

2

这篇文章逐步解释了如何配置你的目录结构和 gradle 文件。

主要步骤是:

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

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

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

目录结构示例

于 2015-10-25T17:48:16.493 回答
2

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

例如,使用:

applicationId "com.abc.def"

代替

applicationId
"com.abc.def"
于 2015-10-25T17:56:02.950 回答
1

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

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

productFlavors {
        dev {
            applicationId "com.swagata.devbuild"
        }

        prod {
            applicationId "com.swagata.prodbuild"
        }
    }
于 2015-10-15T06:18:29.603 回答