gradle传递的参数是null android

时间:2016-08-23 12:21:10

标签: android gradle android-gradle

我试图安装相同的应用程序,但使用不同的版本/变体。所以我找到了这个博客。 https://blog.grandcentrix.net/how-to-install-different-app-variants-on-one-android-device/ 我想用博客的图片做同样的事情,不同的应用程序针对不同的sprint 这是我的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 {
        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'
}

运行此命令后:

enter image description here

在Gitbash我在windows btw上, debugsuffix为NULL。

这是我尝试通过将debugsuffix显示为应用程序名称来调试它时的屏幕截图。 enter image description here

我正在执行命令吗?还是我错过了什么?这是我第一次用传递的论据来做这种琐事。有没有人试过这个?这真的是一个很好的帮助家伙:))

1 个答案:

答案 0 :(得分: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'
}

然后你运行这个命令:

DEMO

您可以在命令行中用空格分隔任务。

这是输出:

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

您现在可以执行类似[AppName] -Sprint1等或[AppName] -bug-fix-05的操作。这样的事情。