可以" testBuildType"在Android项目的build.gradle文件中有条件?

时间:2017-02-09 05:51:51

标签: android gradle android-gradle build.gradle gradlew

我的应用程序有2种构建类型:debug和release。

我想对两种构建类型执行测试。

但目前只测试了一种Build Type。默认情况下,它是调试构建类型,但可以使用以下命令重新配置: android {     ...     testBuildType"发布" }

我想逐个执行 connectedDebugAndroidTest connectedReleaseAndroidTest 而不更改gradle文件。

是否可以使" testBuildType" 有条件? 因此,根据gradle任务中的构建变量(connectedDebugAndroidTest和connectedReleaseAndroidTest),它将对该构建执行测试。

1 个答案:

答案 0 :(得分:2)

我不确定,但这对我有用。如果你想在应用程序中根据构建变量(调试和发布)执行代码,那么你可以使用以下代码。

这适用于活动java文件。

public void printMessage()
{
    if (BuildConfig.DEBUG)
    {
        //App is in debug mode
    }
    else
    {
        //App is released
    }
}

如果您想签入build.gradle文件,请按照以下代码进行操作。

  

第一种方式

buildTypes {
    debug {
      buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
    }

    release {
      buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
    }

    mezzanine.initWith(buildTypes.release)

    mezzanine {
        buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
    }
}
  

第二种方式

android {
    testBuildType obtainTestBuildType()
}

def obtainTestBuildType() {
    def result = "debug";

    if (project.hasProperty("testBuildType")) {
        result = project.getProperties().get("testBuildType")
    }

    result
}

有关详细信息,请查看thisthisthis stackoverflow应答。

我希望你能得到解决方案。