2014-10-21 2 views
1

Android Studio IDE를 사용하여 구성된 Gradle 빌드가있는 Android Java 프로젝트에서 빌드 환경에 따라 변경되는 변수가 필요합니다.Gradle을 사용하는 개발자 및 프로덕션 환경에 대한 다른 매개 변수

예를 들어 Utils.java에 public static final boolean USE_LOCAL_BACKEND = false;이있는 경우 프로덕션은 항상 false 값을 가져야하고 디버깅을 위해 로컬 서버를 사용하려면 개발시 true이 필요합니다.

나는 Gradle의 전문가가 아니므로 각각의 환경에 서로 다른 두 개의 properties 파일을 갖도록 프로젝트를 구성하는 방법에 대한 자세한 가이드를 보내 주시면 감사하겠습니다. 각각의 키는 같지만 값이 다릅니다. 세 가지 빌드 유형 (debug, release 및 사용자 정의 mezzanine 하나 여기

android { 
    // other stuff here 

    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"' 
     } 
    } 
} 

, 내가 BuildConfigSERVER_URLString 필드를 정의하고있다 :

+0

http://stackoverflow.com/questions/26489564/gradle-check-constant-value-to-show-error-if-true/26490982#26490982 도움이 될 것입니다. –

답변

2

가장 간단한 솔루션은 지금까지, USE_LOCAL_BACKENDBuildConfig로 이동하는 것입니다). booleanUSE_LOCAL_BACKEND에 대해서도 동일한 작업을 수행 할 수 있습니다. 그런 다음 Java 코드에서 BuildConfig.USE_LOCAL_BACKEND으로 참조하십시오.

+0

Cool,이 코드는 build.gradle에 있으며 BuildConfig.java 클래스로 자동 생성됩니다. 감사! – Kof

+0

@Kof : 예, 그 간격에 대해 미안 해요. 나는 대답을 서둘 렀습니다. – CommonsWare

관련 문제