2016-08-23 91 views
0

我試圖安裝相同的應用程序,但使用不同的版本/變體。所以我找到了這個博客。 https://blog.grandcentrix.net/how-to-install-different-app-variants-on-one-android-device/ 我想做一些同樣用博客與不同的衝刺不同的應用程序的圖片 這是我的gradle這個文件:爲Gradle傳遞的參數爲null android

enter image description here

在Gitbash我」:

apply plugin: 'com.android.application' 

def debugsuffix = System.getProperty('debugsuffix', project.getProperties().get('debugsuffix', null)) 

def final appId = 'com.arthlimchiu.testapp' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.0" 

    defaultConfig { 
     applicationId = appId 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    productFlavors { 
     dev { 
      applicationId = appId + "." + debugsuffix + ".dev" 
      resValue "string", "app_name", ".dev-" + debugsuffix 
     } 
    } 

    lintOptions { 
     abortOnError false 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
} 

運行此命令後m在windows btw上, debugsuffix爲NULL。

下面是我試圖通過顯示debugsuffix作爲應用程序名稱進行調試時的屏幕截圖。 enter image description here

我在做命令嗎?或者我錯過了什麼?這是我第一次用傳遞參數來做這種類型的gradle。有沒有人試過這個?這真的是一個很好的幫助球員:)

+0

你在哪裏傳遞參數?你得到構建錯誤?如果是,那麼錯誤是什麼? –

+0

爲什麼在Windows有gradlew.bat時使用MinGW? –

+0

看看我的gitbash的截圖,debugsuffix是參數,我通過「bug44」作爲它的參數。 雖然我不會收到構建錯誤,但這就是爲什麼我通過使用「debugsuffix」變量命名我的應用程序來調試它,因爲您可以看到它是「.dev-null」。零部分是調試後綴。我不知道爲什麼它是空的。 –

回答

0

我終於做到了!我實際上閱讀了Gradle提供的免費電子書。並瞭解瞭如何解決如何在一臺設備上安裝多個相同的應用程序。

這是我的Gradle文件。

apply plugin: 'com.android.application' 

def debugsuffix = System.getProperty('debugsuffix', project.getProperties().get('debugsuffix', null)) 

def final appId = 'com.arthlimchiu.testapp' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.0" 

    defaultConfig { 
     applicationId = appId 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 

    buildTypes { 
     debug { 
      applicationIdSuffix ".$debugsuffix" 
      resValue "string", "app_name", "testApp-$debugsuffix" 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    lintOptions { 
     abortOnError false 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
} 

而且在運行此命令:

Make sure you use "-P" and it's first executed

您可以在命令行連鎖任務用空格隔開。

而這裏的輸出:

enter image description here

你現在可以做這樣的事情[AppName的] -Sprint1等或[AppName的] -bug修復-05。類似的東西。