0

런타임시 특정 안드로이드 플레이버 용 gcm_defaultSenderId를 얻으려고하면 올바른 값을 전달하지 않습니다.google-services.json의 값이 잘못되었습니다.

예를 들어 : 나는 맛 TST와 구글 - services.json는 JSON 파일이/구글 - services.json TST에 위치이

{ 
    "project_info": { 
    "project_number": "12345678910", 12345678910 
    "project_id": "api-project-12345678910" 
    }, 
    "client": [ 
    { 
     "client_info": { 
     "mobilesdk_app_id": "1:12345678910:android:xxxxxxxxxxxxx", 
     "android_client_info": { 
      "package_name": "do.something.app" 
     } 
     }, 
     "oauth_client": [], 
     "api_key": [ 
     { 
      "current_key": "XXXxxxx-XXXXxxxXXXXXxxxxXXXx" 
     } 
     ], 
     "services": { 
     "analytics_service": { 
      "status": 1 
     }, 
     "appinvite_service": { 
      "status": 1, 
      "other_platform_oauth_client": [] 
     }, 
     "ads_service": { 
      "status": 1 
     } 
     } 
    } 
    ], 
    "configuration_version": "1" 
} 

처럼 보인다 얻었다. 런타임에 R.string.gcm_defaultSenderId를 사용하여 gcm_defaultSenderId에 액세스하려고하면 반환되는 값은 9876543입니다. 반환 값은 다음과 같이 작성된 gcm_defaultSenderId에 빌드시 설정된 project_number 일 것으로 예상했습니다. https://developers.google.com/android/guides/google-services-plugin. 가치가 google-service.json과 다른 이유가 누구에게 있습니까?

+0

빌드 변형 이름과 디렉토리 이름은 정확히 일치해야합니다. –

+0

정확히 일치 함 – elpatricko

+0

http://imgur.com/AsjllwM이 형식은 다음과 같습니다. –

답변

0

해결했습니다. (?)

R.string.gcm_defaultSenderId 

빌드시에 설정되어 정확한 값에 대한 포인터입니다 날 것으로 보인다 0X23923912 같은 16 진수 값이 값 :이 같은 gcm_defaultSenderId를 얻기 위해 노력했다. 지금은 자바가 INT이 값을 변환되는 것 같아 내가 현재 컨텍스트를 사용하여이 고정 수 9876543. 반환 (?) : 이제 올바른 센더가 반환

context.getResources().getString(R.string.gcm_defaultSenderId 

합니다.