Google 서비스 3.0.0에 api_key / 현재 키가 없습니다.


157

최신 버전의 Google 서비스 및 라이브러리 (9.0.0)로 프로젝트를 업그레이드 했으므로이 이상한 문제가 있습니다.

오류 빌드

등급 콘솔 :

:app:processDebugGoogleServices
Parsing json file: /Users/cyrilmorales/Documents/Projects/mobilemeans-punainenristi/app/google-services.json
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Missing api_key/current_key object
Information:BUILD FAILED

build.gradle (루트) :

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle (앱) :

dependencies {
    ....
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    ...
}
apply plugin: 'com.google.gms.google-services'

그러나 8.4.0 및 google-services 2.1.0의 Play 서비스 라이브러리와 잘 작동합니다.

솔루션에 대한 아이디어가 있습니까?


지도를 사용하고 있으며 AndroidManifest.xml 파일에 api_key가 정의되어 있습니다. 거기에 api_key가 있습니까? 뭐 그런 <메타 데이터는 안드로이드 : 이름 = "com.google.android.geo.API_KEY"안드로이드 : 값을 = "AIzaSdfdfdfdfdfdfdfdfdRVxThQsNaqY"/>
그르 Bielański

그래 내가 가지고있어. 매니페스트는 잘 구성되어 있으며 항상 ..까지 작동했습니다.
palmsnipe

답변:


162

https://developers.google.com/cloud-messaging/android/client#get-config 에서 새 구성 파일 (google-services.json)을 생성 하십시오.

"api_key": [ { "current_key": XXX } ]클라이언트 섹션에 새로운 설정 파일

업데이트 : 또는 개발자 콘솔에서 수동으로 활성화 된 서비스 및 키 생성.


1
conf 파일 "api_key"에 새로 추가되었습니다 : [{ "current_key": XXX}]
Jozka Jozin

1
어떤 API 키가 있어야합니까?
마르코 자네티

8
클라우드 메시징을 사용하지 않고 새 json 파일을 생성하더라도 클라우드 메시징을 사용해야합니다. Cloud Messaging을 활성화하면 API 키가 필요합니다.
라파엘 구티에레스

2
Cloud Messaging API "api_key": [{ "current_key": "the_api_key"}]를 사용하도록 설정하여 JSON 파일에 API 키가 있지만 여전히 작동하지 않습니다. 나는 무엇이 잘못되었는지 정말로 모른다. :-/
Marco Zanetti

7
이 api_key가 무엇인지 누가 알 수 있습니까? 그것은 전에없이 잘 작동했습니다 ...
Pavel Biryukov

89

google-services.json 파일에 빈 현재 키 값을 추가하면이 문제가 해결되었습니다.

"api_key": [{ "current_key": "" }]


1
그냥 내가 "API_KEY"값이 "클라이언트"값 안에있는 것을 추가 할 거라고 생각

2
@ 아약스-최대 : 이것은 나에게도 효과가있었습니다. 이것이 왜 효과가 있는지 설명해 주시겠습니까?
Pineda

1
오래된 GMS 클라우드 메시징을 사용하는 경우 가장 좋은 솔루션 인 것 같습니다. 새로운 설정 파일은 Firebase를 추가하는 대신 GMS 키를 제외합니다.
GordonW

34

예, Firebase와 함께 처음 사용하는 경우에는 그런 식으로 직면합니다. 앱 메뉴를 클릭하고 "관리"를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

google-services.json을 다시 다운로드 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


2
네, 다시 다운로드했는데 다음에 더 큰 파일이었고 이것은 다음 문제를 해결했습니다.
Hatem Badawi

1
확인할 수 있습니다. Firebase Analytics에 가입했으며 API 키가없는 google-services.json을 자동으로 다운로드했습니다. 그런 다음 수동으로 다운로드하면 API 키가 json에 있습니다.
chichilatte

이 대시 보드로 이동하기위한 URL은 무엇입니까?
Sean Beach

9

이 문제가있는 모든 사람을 위해 지금 https://developers.google.com/cloud-messaging/android/client#get-config 에서 앱에 서비스를 추가해야합니다.

내 경우에는 admob를 추가하고 (이미 분석 및 gcm이 있음) 파일이 api_key로 생성되었습니다.

나는 그것이 버그라고 생각하고 그 때까지 곧 해결 될 것입니다.


실제로 버그가 있습니다 ... 나는 새로운 json을 얻기 위해 앱 초대를 추가해야했습니다
Jivraj S Shekhawat

안녕하세요, 새 구성을 추가했지만 IDE에서 여전히 api_key가 누락되었다고 불평합니다
코드

IDE를 열기 전에 구성 파일을 검사하여 s 'api_key' value. Clearly there버그 가 있는지 확인 하면 문제를 해결하기 위해 다른 접근법을 시도해야합니다.
Elvis Oliveira

그것은 gradle 파일에 새로운 의존성을 추가 할 때마다 새로운 api_key를 생성하기 때문에 새로운 google-services.json을 다운로드해야한다는 것을 의미합니까?
Ashok Bijoy Debnath

8

Jozka Jozin의 답변과 의견은 있지만 Cloud Messaging은 관련이 있거나 필요하지 않습니다.

그럼에도 불구하고 다시 생성하는 google-services.json것이 해결책의 열쇠입니다 (그래서 나는 그에게 투표했습니다). 아래는 내가 한 일입니다.

아시다시피 Google 개발자 안내서 에서 Analytics에 대한 구성 파일을 생성 할 수 있습니다 .

1 : 앱을 선택하십시오.

1) 앱을 선택하십시오

2 : 팝업을 닫습니다! 숨겨져 ...

팝업을 닫습니다!

3 : ADMOB의 선택!

admob의 숨겨진 옵션

4 : 물론 선택해주세요!

가능하게하십시오!

5 : 이제 구성 파일을 올바르게 생성 할 수 있습니다!

구성 파일 생성

6 : 우리는 그것을 만들었다! 이번에는 구성 파일에 api_key가 적절히 포함되어야합니다 .

우리는 그것을 만들었다!

결론 : 대화 형 생성 도구의 UI는 약간 혼란 스럽습니다 ...


1
덕분에 나는 새로운 설정을 얻을 수 있었다지만, IDE는 여전히 API_KEY 없음을 불평
코드

A는 비트 그것은 끔찍한입니다 ... 혼란! 당신의 명확한 설명을 위해 좋은.
Niels

7

google-services.json파일을 다시 다운로드 할 수 있습니다 .

다운로드 단계 :

1). Firebase콘솔 에서 앱의 최상위 메뉴를 클릭하십시오 .

2). 관리를 클릭하십시오.

삼). Download the latest config파일 옵션 을 찾은 google-services.json다음 응용 프로그램 에서 파일을 다운로드하고 교체하십시오 .


4

JSON 파일에서 첫 번째

바꾸다

"api_key": []

"api_key": [{ "current_key": "" }]

그러면 gradle 빌드는 성공하지만 응용 프로그램을 실행할 때 다음과 같은 오류가 발생할 수 있습니다.

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
    File1: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.2.2\d20be6a5ddd6f8cfd36ebf6dea329873a1c41f1b\jackson-core-2.2.2.jar
    File2: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.2.2\3c8f6018eaa72d43b261181e801e6f8676c16ef6\jackson-databind-2.2.2.jar
    File3: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.2.2\285cb9c666f0f0f3dd8a1be04e1f457eb7b15113\jackson-annotations-2.2.2.jar

이 문제를 해결하기 위해 app.gradle 파일에 다음을 추가 할 수 있습니다.

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

편집 : apk 파일을 빌드하는 동안 나중에 오류가 발생했습니다. 그래서 json 파일을 다시 다운로드해야했습니다. 2 시험 후 유효한 API 키가있는 json 파일을 얻었습니다.




2

여기에 답변되지 않은 이러한 단계 로이 문제를 해결할 수있었습니다. 이 답변은 클라우드 메시징을 활성화하지 않고 서버 키만 검색합니다.

먼저 Firebase 콘솔로 이동 한 다음 프로젝트 설정으로 이동 한 다음 "클라우드 메시징"탭을 클릭하십시오. "서버 키"라고 표시된 위치를 확인하고 "발신자 ID"번호가 아닌 긴 키가 표시되지 않으면 "키 재생성"을 클릭하면 긴 키가 표시됩니다. 해당 키를 복사하여 google-services.json 파일 ()에 저장하십시오 "api_key": [ {"current_key" : "key goes here"} ].

이 방법은 다른 사람들이 일하지 않는 동안 도움이되었으므로 누군가에게 도움이되기를 바랍니다.


2

여기에 이미지 설명을 입력하십시오

개요-> 기어 아이콘-> 프로젝트 설정을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

최신 구성 다운로드로 이동하고 google-service.json 버튼을 클릭하여 파일을 다운로드하고 앱 폴더에 저장하고 다시 컴파일하십시오. 즐겨!


2

프로젝트에 SHA 인증서 지문을 추가 한 다음 "api_key": [{ "current_key": "xxxxxx"}]가 포함 된 google-services.jason 파일을 다시 다운로드해야합니다.

다음 페이지에서 지문 생성 방법을 볼 수 있습니다.

https://developers.google.com/android/guides/client-auth

Windows에서는 다음 명령을 실행하고 디버그 목적으로 android를 비밀번호로 사용하십시오.

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

1

Firebase 사용

GoogleServices'. > Missing api_key/current_key object

기존 프로젝트를 새로운 Firebase 서비스로 업데이트 한 후이 오류가 발생했습니다. firebase 프로젝트 설정 페이지 에서 다운로드 한 생성 된 google-service.json 파일 에 필요한 내용이 포함되어 있지 않습니다 .api_key

다른 답변에서 파일에 포함하려면 Google / Firebase Cloud Messaging (GCM / FCM)을 추가 해야하는 것처럼 보입니다 .api_keygoogle-service.json

그래서 파일을 다시 다운로드하기 전에 firebase FCM에 대한 종속성을 추가했으며 이번에는 키가 포함되었습니다.

FCM 포함 (GCM)

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}

1

google-services.json파일 을 재구성하고 다운로드하지 않으려면 firebase 콘솔에서 직접 api 키를 가져올 수 있습니다. 그냥가

개요> 다른 앱 추가> 웹

포함 할 데이터베이스에 대한 구성을 얻게됩니다 apiKey. 해당 값을 복사하여 current_key아래 XXX로 표시된 값에 넣으십시오.

"api_key": [{ "current_key": "XXX" }]

0

firebase 이주자의 경우 :

프로젝트 설정에서 지문을 하나 이상 추가했는지 확인하고 google-services.json 파일을 다시 다운로드하십시오.


고맙습니다. 코드 랩 지침에 따라 처음에는 SHA1 키를 추가하지 않았습니다. 나중에 ApiKey-CurrentKey가 없어서 추가해야했습니다. 그것이 사실인지 확실하지 않습니다. 그러나 그것은 내 문제를 해결했습니다.
라나 Ranvijay 싱

0

firebaes를 사용하는 경우 serverbase를 firebase에서 google-services.json으로 복사해야합니다.

 "api_key": [{ "current_key": "SERVER_KEY"}

서버 키를 가져 오려면 ProjectOverview> 프로젝트 설정> CloudMessaging> 복사 또는 serverKey 생성 및 복사로 이동하십시오.


0

이것을 google-service.json 파일에 추가하십시오. app / google-service.json에서 찾을 수 있습니다.

"api_key": [{ "current_key": "your-google-api-key"}]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.