1

我已经问过类似的问题但找不到我所寻找的东西。因此再次询问。 我想同时在同一个设备上运行不同的味道apk。在android中为独立的风味创建单独的apk以在同一设备上运行

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

我的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/"' 
    } 

} 

回答

2

不要把换行符gradle这个命令之间,它的论据。它会读取每一行分别自换行符是gradle这个命令分隔符(例如如何;为java的)

例如,使用:

applicationId "com.abc.def" 

代替

applicationId 
"com.abc.def" 
1

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

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

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

     prod { 
      applicationId "com.swagata.prodbuild" 
     } 
    } 
+0

我已编辑与我的代码片段的Gradle文件的问题。我已经使用这种方法。但它不起作用。请检查并建议我是否缺少任何东西。提前致谢。 – SimpleCoder

+0

@SimpleCoder你如何为不同的口味创建不同的口味? './gradlew assemble'创建可以独立运行的不同apks,如果遵循这种方法。 –

1

post解释一步一步如何配置你的目录结构和文件的gradle。

的主要步骤为:

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

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

  2. 中创建与SRC的确切名称的目录您希望看起来与主要变体不同的产品风格,例如通过步骤1中的配置,可以支付或免费使用目录名称。并在该目录内创建子文件夹res/drawable,您将在其中放置新应用程序launcher图标

Directory structure example