2015-02-03 3 views
3

XML 파일이 있습니다. xml 파일에서 BuildConfig 값을 가져 오려고합니다. BuildConfig 값은 build.gradle에서 설정됩니다.XML에서 BuildConfig 값을 가져 오는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="com_my_api_key">**REPLACE_WITH_YOUR_API_KEY**</string> 
</resources> 

는 내가 자바 코드에서 해당 값을 얼마나 유사 buildConfig에서 해당 API 키를 얻을 싶어요. 여기

public class MyApp extends Application{ 

     public String APPTIMIZE_KEY = BuildConfig.APPTIMIZE_KEY; 

} 

이 값은 외부 파일로부터 오는 build.gradle 설정되고있다.

release { 
     buildConfigField "boolean", "APP_DEBUG", "false" 
     buildConfigField "String", "APPTIMIZE_KEY", "\"${props.getProperty("apptimizeKey_App1")}\"" 

어떻게 참조 할 수 있습니까?> BuildConfig.APPTIMIZE_KEY를 XML 파일에서 가져 오려면 어떻게해야합니까?

답변

6

a lightly documented resValue counterpart to buildConfigField입니다. 나는 아직 그것을 시도하지 않은,하지만 난 시작할 것 곳의 라인을 따라 뭔가 될 것이다 : 당신은/그 값도 BuildConfig에서 액세스 할 수 할 필요가있는 경우

resValue "string", "com_my_api_key", "\"${props.getProperty("apptimizeKey_App1")}\"" 

이, 당신이 buildConfigField 기존과 함께 갈 것입니다 . 더 이상 수동으로 문자열 리소스를 선언 할 필요는 없지만 대신 생성됩니다.

+1

은 매력처럼 작동합니다. – sirvon

+0

@sirvon : 아직 시도하지 않았으므로 내 질문에 신경 쓰지 않는다면 백 슬래시 안쪽 인용 부호를 사용해야합니까? 'buildConfigField'는 값이 생성 된 Java로 바로 넘어 가기 때문에 필요합니다. 그러나'resValue'에서도 필요합니다. – CommonsWare

+0

실제로 그렇게합니다. 내가 처음 시도한 것은 ... resValue "string", "RES_FOO", "RES FOO RELEASE"입니다. 아무 소용이 없다. 정확히 어떻게 게시했는지가 승리자였습니다. – sirvon

관련 문제