[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
생성 한 구성 파일 ( ) 을 배치해야합니다.
과정은 간단합니다
- 프로젝트를 선택하거나 새 프로젝트를 만들 수 있습니다.
-
그런 다음 원하는 서비스 (이 경우 맵 서비스)를 선택한 후 구성 파일을 생성 할 수 있습니다.
Firebase 프로젝트로 이전 한 사용자는 Firebase 콘솔 로 이동 하여 프로젝트를 선택하고 설정에서 구성 파일을 찾을 수 있습니다.
-
그런 다음 여기 공식 문서의 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.json
의app/
또는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
답변
나는 같은 문제를 만났고 공식적인 해결책에 따라 해결했다 .
단계는 다음과 같습니다.
-
이 링크
google-services.json
에서 구성 파일 을 가져옵니다 . -
google-services.json
방금 다운로드 한 파일을 Android Studio 프로젝트의 app / 또는 mobile / 디렉토리에 복사합니다 . -
프로젝트 수준 build.gradle에 종속성을 추가합니다.
classpath 'com.google.gms:google-services:1.5.0-beta2'
-
앱 수준 build.gradle에 플러그인을 추가합니다.
apply plugin: 'com.google.gms.google-services'
-
이 종속성을 앱 수준 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 스튜디오가 내 주요 활동에 일부 코드를 삽입하려고했기 때문입니다. 코드를 제거하면 오류가 수정됩니다.
삽입 된 코드는 앱 인덱싱에 관한 것입니다.