2015-10-28 28 views
3

我正在使用Android Studio和Gradle构建Android应用程序。我想根据它的构建类型(调试版本与发布版本)在Java代码中使用不同的字符串。做这个的最好方式是什么?Android Studio + Gradle创建不同配置

例如 - 如果我正在调试或发布,我想拥有不同的URL。另外,我想指定不同的GUID和其他键/字符串。

做这件事显而易见的方法是在AndroidManifest.xml或者更糟糕的情况下在Java文件中搜索并替换字符串。这种方法似乎容易出错,对我来说很难受 - 有没有更好的方法来做到这一点?

回答

4

有很多方法可以做到这一点,虽然我平时做

android { 
    buildTypes { 

     release { 
      buildConfigField("String", "URL", "your_url_on_release") 
     } 

     debug { 
      buildConfigField("String", "URL", "your_url_on_debug") 
     } 
    } 
} 

然后,您可以访问它们在Java代码中使用:

BuildConfig.URL 

您可以测试这个采用了Android工作室通过更改您的应用程序变种以进行调试或发布,构建变体(例如http://prntscr.com/8waxkw

2

您有许多解决方案来执行此操作,这里有一个简单的例子:

buildTypes { 
    debug { ... } 
    release { ... } 
} 

productFlavors { 
    staging { ... } 
    production { ... } 
} 
  • 构建类型是构建管理proguarding,调试,签约等
  • productFlavors是所有应用程序内部配置。

如果你想添加与口味有关的资源,你可以创建并添加到你的urls.xml配置文件的src /(flavor_name)/ res/values /文件夹中。

有了这个,在android studio中,您将直接看到相应窗口中的所有构建变体以及与当前上下文关联的右侧urls.xml文件,并保持gradle配置清洁。

当然,此方法也适用于您的应用程序需要的任何资源。

更多详细信息,你可以阅读:http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants

0

我将与产品的口味做它在这个post解释。