IT

GoogleService를 초기화하지

lottoking 2020. 7. 28. 07:40
반응형

GoogleService를 초기화하지


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

Google 서비스를 초기화하지. 상태 : 10, 구글 서비스를 초기화하기위한 예상 리소스 'R.string.google_app_id'가 없습니다. google-services.json 또는 com.google.gms.google-services gradle 플러그인이 누락 수 있습니다.

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

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

불만이 무엇입니까?


당신은 구성 파일 생성 (배치 할 필요 google-services.json에 의해) developer.google.com을 공식 문서의 2 단계에서 한 단계 같이, 여기

과정은 간단하다

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

    Firebase 프로젝트로 마이그레이션 한 사람들은 Firebase 콘솔 로 이동 하여 프로젝트를 선택하고 설정에서 구성 파일을 사용할 수 있습니다.

  3. 다음과 같은 공식 문서의 3 단계에서 인용 여기

    google-services.json방금 다운로드 파일을 Android의 앱 / 또는 모바일 / 디렉토리에 복사하십시오.

추신 :이 답변을 내리는 사람들을 위해, 왜 그 투표를 거절 했습니까?


[Google의 제품 관리자에서]

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

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

이전에 Google 프로젝트를 Firebase로 경우에 따라 프로젝트 설정 Firebase 콘솔 에서 업데이트 된 google-services.json을 얻을 수 있습니다 .

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


필자의 경우,이 오류의 원인은 Gradle 용 Google 서비스 플러그인과 Play Services 라이브러리가 호환되지 않는 버전이기 때문입니다. 호환되는 버전에 대한 지침 :

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

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 Studio가 주요한 코드를 삽입하려는 활동입니다. 코드를 제거하면 오류가 해결됩니다.

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

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


그 당시에도 같은 문제가있었습니다. 필자의 경우 GCM 인 필요한 플레이 서비스 라이브러리 만 사용하여 해결할 수있었습니다.

대신 com.google.android.gms:play-services:8.4.0, 내가 사용 com.google.android.gms:play-services-gcm:8.4.0. 자세한 정보는 여기참조 하십시오 . 이것은 또한 multidex 문제를 해결합니다.

그런 다음 @Radix와 @Alexander의 접근 방식을 모두 적용하여 .NET과 관련된 logcat에서 GCM이 출력되었습니다 메시지를 제거했습니다 google-services.json.


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

Build > Rebuild Project

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


당신은 변경할 수 versionCodeversionName당신의 Gradle을 파일에 앱을.


빠른 수정 내가 사용은하지 않도록 서명하는 것입니다. 프로덕션 코드를 생성하지 않으려는 경우 빌드 변형을 debug, localOldDebug 또는 localDebug로 설정할 수 있습니다.

Android Studio의 왼쪽 하단에있는 Build Variants를 클릭합니다.

생성-서명 된 -apk-android-studio 비활성화 방법


실수로 제거하는 다른 솔루션이 있습니다.

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

이것을 추가하고 작업은 새로운 솔루션입니다.

참고 URL : https://stackoverflow.com/questions/34365369/googleservice-failed-to-initialize

반응형