如何从Android项目中依赖检查gradle构建变量(调试或发布)?

时间:2016-08-09 06:30:30

标签: android android-gradle build.gradle

可以在app模块的debugrelease中设置变量。此文档已解释了如何执行此操作,Android:Managing different server URL for development and release

然而,我的问题略有不同。我有Project_A,它依赖于我的App_Module。我的Project_A上的一个类需要知道这个构建是Debug还是Release。我在buildTypes基于上述文档所说的内容(在App_Module中)创建了一个变量。但是,此变量似乎对此依赖项(Project_A)不可见。

我在Project_A类中有以下代码:

buildTypes

当我检查if (BuildConfig.DEBUG) { MyConstants.URL_BASE = "https://my.debug.com"; } else { MyConstants.URL_BASE = "https://my.release.com"; } 的包时,该包属于Project_A(并且在自动导入包的下拉列表中没有App_Module的迹象)。那你的建议是什么?如何从依赖项中检查构建变体?

1 个答案:

答案 0 :(得分:0)

我使用以下解决方案解决了我的问题。我在Project_A的Application类中定义了Debug变量:

 // Placeholder for the BuildConfig.DEBUG flag. Should be overwritten by the final application class
 // with the correct value based on build variant (debug/release).
 public static boolean       DEBUG = true;

然后,我从App_Module的Application类设置它。

// Setup the debug flag
PassengerLibApplication.DEBUG = BuildConfig.DEBUG;

因此,我的上述代码将更改为

if (Project_A_Application.DEBUG)
{
    MyConstants.URL_BASE = "https://my.debug.com";
}
else
{
    MyConstants.URL_BASE = "https://my.release.com";     
}