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

相關問題