[android] GoogleService를 초기화하지 못했습니다.

내 Android 애플리케이션에서 Google지도를 사용하고 있습니다. 키를 생성하고 매니페스트 파일에 필요한 권한을 추가했습니다. 하지만 곧 응용 프로그램을 시작하면 디버거에서이 메시지가 나타납니다.

GoogleService를 초기화하지 못했습니다. 상태 : 10, 예상 리소스가 없습니다. Google 서비스를 초기화하기위한 ‘R.string.google_app_id’. 가능한 원인은 google-services.json 또는 com.google.gms.google-services gradle 플러그인이 누락 된 것입니다.

나는 무엇이 잘못되었는지 잘 모르겠습니다. 지도가 잘 작동하며 문제없이 사용할 수 있습니다. 내 gradle 파일에는 다음 항목이 있습니다.

‘com.google.android.gms : play-services : 8.4.0’컴파일

불만 사항은 무엇이며 어떻게 완화합니까?



답변

여기 공식 문서의 2 단계에서 언급 한대로 developer.google.com 에서 google-services.json생성 한 구성 파일 ( ) 을 배치해야합니다.

과정은 간단합니다

  1. 프로젝트를 선택하거나 새 프로젝트를 만들 수 있습니다.
  2. 그런 다음 원하는 서비스 (이 경우 맵 서비스)를 선택한 후 구성 파일을 생성 할 수 있습니다.

    Firebase 프로젝트로 이전 한 사용자는 Firebase 콘솔 로 이동 하여 프로젝트를 선택하고 설정에서 구성 파일을 찾을 수 있습니다.

  3. 그런 다음 여기 공식 문서의 3 단계에서 인용 한대로

    google-services.json방금 다운로드 한 파일을 Android의 app / 또는 mobile / 디렉토리에 복사합니다.

추신 :이 답변에 반대하는 사람들은 왜 반대하는 지에 대한 의견을 남겨주세요.


답변

[Google의 제품 관리자]

google-services.json아래 단계에 따라 Android 앱용 파일을 다운로드하고 복사하여이 문제를 해결할 수 있습니다 .

  • 이 링크 에서 앱 / 프로젝트 이름과 Android 패키지 이름을 선택하고을 클릭 Continue to Choose and configure services합니다.
  • 를 클릭하십시오 Continue to Generate Configuration files.
  • Android 프로젝트 google-services.jsonapp/또는 mobile/모듈 디렉토리에 파일을 다운로드 하고 복사합니다 .

이전에 Google 프로젝트를 Firebase로 가져온 경우 Firebase 콘솔 의 프로젝트 설정 에서 업데이트 된 google-services.json을 가져올 수 있습니다 .

google_app_id는 프로젝트 자체가 아니라 프로젝트 내의 앱을 참조하므로 다른 답변 중 하나에서 제안한대로 PROJECT_NUMBER를 복사하지 마세요 .


답변

제 경우이 오류의 원인은 Gradle 용 Google 서비스 플러그인과 Play 서비스 라이브러리가 호환되지 않는 버전이었습니다. 호환 버전에 대한 지침 :

1) 프로젝트 수준 build.gradle에 종속성을 추가합니다.

classpath 'com.google.gms:google-services:1.5.0-beta2'

2) 앱 수준 build.gradle에 플러그인을 추가합니다.

apply plugin: 'com.google.gms.google-services'

3) Android Studio를 사용하는 경우 애플리케이션의 build.gradle 파일의 종속성 섹션에 추가 할 문자열입니다.

dependencies {
  compile "com.google.android.gms:play-services:8.3.0"
}

출처 : https://developers.google.com/cloud-messaging/android/client


답변

나는 같은 문제를 만났고 공식적인 해결책에 따라 해결했다 .

단계는 다음과 같습니다.

  1. 이 링크google-services.json 에서 구성 파일 을 가져옵니다 .

  2. google-services.json방금 다운로드 한 파일을 Android Studio 프로젝트의 app / 또는 mobile / 디렉토리에 복사합니다 .

  3. 프로젝트 수준 build.gradle에 종속성을 추가합니다.

    classpath 'com.google.gms:google-services:1.5.0-beta2'
  4. 앱 수준 build.gradle에 플러그인을 추가합니다.

    apply plugin: 'com.google.gms.google-services'
  5. 이 종속성을 앱 수준 build.gradle에 추가합니다.

    dependencies {
        compile "com.google.android.gms:play-services:8.3.0"
    }

답변

플레이 서비스를 올바르게 설정하고 폴더 에 google-services.json파일을 넣은 후에도이 문제에 직면 한 사람들을 project/app위해 실제 해결책은

Build > Rebuild Project

아마도 json 파일의 문자열은 전체 재 빌드가 수행 될 때까지 컴파일 된 리소스에 통합되지 않기 때문일 수 있습니다.


답변

Xamarin / Visual Studio Mac의 경우 Droid.csproj의 맨 아래에 추가해야했습니다.

<Target Name="ProcessGoogleServicesJson" Condition=" '@(GoogleServicesJson)' != '' AND '$(AndroidApplication)' == 'True' AND '$(DesignTimeBuild)' != 'True'" BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)">
<Message Text="Using ProcessGoogleServicesJson override" Importance="high" />
<ProcessGoogleServicesJson GoogleServicesJsons="@(GoogleServicesJson)" IntermediateOutputPath="$(IntermediateOutputPath)" MonoAndroidResDirIntermediate="$(MonoAndroidResDirIntermediate)" AndroidPackageName="$(_AndroidPackage)">
    <Output ItemName="_AndroidResourceDest" TaskParameter="GoogleServicesGeneratedResources" />
    <Output ItemName="FileWrites" TaskParameter="GoogleServicesGeneratedResources" />
</ProcessGoogleServicesJson>
<ItemGroup>
    <FileWrites Include="$(IntermediateOutputPath)\ProcessGoogleServicesJson.stamp" />
</ItemGroup>

https://github.com/xamarin/GooglePlayServicesComponents/issues/64


답변

이것은 나에게도 일어난다. 제 경우에는 Android 스튜디오가 내 주요 활동에 일부 코드를 삽입하려고했기 때문입니다. 코드를 제거하면 오류가 수정됩니다.

삽입 된 코드는 앱 인덱싱에 관한 것입니다.

https://developers.google.com/app-indexing/android/publish