Google Play 서비스 GCM 9.2.0에서 9.0.0으로 '업데이트'하도록 요청


178

그래서 오늘 아침에 최신 버전의 프로젝트 라이브러리로 업데이트하기 시작했습니다.

GCM을 최신 버전 9.2.0으로 업데이트하려고 하는데이 오류가 발생합니다.

오류 : ': app : processDebugGoogleServices'작업에 대한 실행이 실패했습니다. google-services 플러그인 버전을 업데이트하여 버전 충돌을 해결하십시오 (최신 버전에 대한 정보는 https://bintray.com/android/android-tools/com.google.gms.google-services/ 에서 확인할 수 있음 ) 또는 com.google.android.gms 버전을 9.0.0으로 업데이트합니다.

이것이 내 코드를 얻는 방법입니다.

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

그리고:

dependencies {
    ...

    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

같은 문제가 있거나 같은 문제가 해결 된 사람이 있습니까?

감사.

편집하다

분명히 app / build.gradle 파일의 맨 아래에 GSM 플러그인을 적용해야합니다. 그렇지 않으면 버전 9.2.0이 프로젝트에서 충돌을 일으킬 수 있습니다.

참고로, 이것은 내 app / build.gradle 파일의 모습입니다 :

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt"

android {
    ...
}

dependencies {
    ...

    // Google Cloud Messaging
    compile "com.google.android.gms:play-services-gcm:9.2.0"

    ...
}

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

여기에 같은 문제는, 나는 9.0.0로 롤백
mbonnin

@mbonnin 나는 같은 일을 끝내었다. 그러나 여기서 무슨 일이 일어나고 있는지 알고 싶습니다. 아직 답을 찾지 못해 운이 없었습니다.
herrmartell

2
그런 다음 9.0.0에는이 버그 stackoverflow.com/questions/37361651/… 이 있으며 해결책은 9.2.0으로 업데이트하는 것 같습니다 .... 여기 버그로 인해 불가능합니다 :-(
mbonnin

6
내가 Gusthema 같은 build.gradle 파일의 끝에서 플러그인을 적용 할 경우이 울부 짖는 소리 말한다 일하고있어
mbonnin

내 게시물에서 올바른 방법으로이 문제를 해결하는 방법을 읽으 십시오 .
Pedro Varela

답변:


507

선 있어요

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

앱의 build.gradle 파일 하단에 줄이 있습니까?

상단에있을 때 약간의 오류가 있었고 여기 에 쓰여졌 을 때 하단에 있어야합니다.


11
사실은 아닙니다. gms 플러그인은 파일 하단에 있어야합니다. 여기 gms 문서에서 볼 수 있습니다. developers.google.com/android/guides/google-services-plugin
Gusthema

1
나는 정정되었다. 그럼에도 불구하고 문제가 해결되지는 않습니다.
herrmartell

1
처음 시도한 이유가 확실하지 않습니다. @mbonnin의 의견 때문에 다시 시도해 보았습니다. 지금 작동 중입니다. 감사합니다.
herrmartell

9
파일의 시작 부분 에이 줄을 추가했지만 맨 아래에 놓은 후에 작동했습니다.
SHA2NK

2
하단에 플러그인을 추가하면 버전 충돌이 해결되었습니다.
Pratima

54

이 줄을 앱 모듈 (프로젝트 루트가 아닌) gradle파일 의 맨 아래에 두십시오 .

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

그런 다음 프로젝트를 다시 빌드하십시오.


11

나는 오늘 2016 년 10 월 6 일에 같은 문제를 겪었다.

9로 시작된 모든 종속성을 변경 했습니까? 9.6.1에서 SDK 버전 24 및 대상 버전 17로 컴파일했습니다.

인증에만 더 많은 것을 사용했기 때문에 솔루션에 다른 패키지가 있습니다.

아래 코드로 build.gradle (Module : app)을 변경 한 후 수행하십시오.

  1. applicationId "com.YOUR_PACKAGE_HERE"라는 단어가있는 행에 패키지 NAME을 넣으십시오.

  2. 프로젝트를 동기화하고 (Ctrl + alt + v) 다시 빌드하십시오.

이것은 나를 위해 일한 buid.gradle (Module : app) 파일의 코드입니다.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.YOUR_PACKAGE_HERE"
        minSdkVersion 24
        targetSdkVersion 17
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.google.firebase:firebase-core:9.6.1'
    compile 'com.google.firebase:firebase-database:9.6.1'

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'

    compile 'com.google.firebase:firebase-crash:9.6.1'
    testCompile 'junit:junit:4.12'

    compile 'com.google.firebase:firebase-messaging:9.6.1'

    compile 'com.google.firebase:firebase-ads:9.6.1'


    compile 'com.google.firebase:firebase-auth:9.6.1'


    compile 'com.google.android.gms:play-services:9.6.1'

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

6

이전 버전에서도 동일한 상황이 발생했습니다. 플러그인 이전에 항상 com.google.android.gms 라이브러리의 새 버전이 출시되고 있으며 이전 플러그인과 호환되지 않으므로 새 버전을 사용할 수 없습니다. 플러그인이 필요한지 모르겠습니다 (Google 문서는 짜증납니다). 나는 그렇지 않은 때를 기억합니다. 유일한 방법은 새 플러그인 버전을 기다리거나 플러그인 종속성을 제거하려고 시도 할 수 있지만 gcm이 없으면 gcm이 작동하는지 확실하지 않습니다. 9.2.0 버전의 주요 기능은 새로운 Awareness API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en입니다 . 필요하지 않은 경우 9.0을 사용할 수 있습니다. 문제없이 0 버전.


아, 간다 달리 언급하는 문서가 없기 때문에 최신 버전이 필요한 플러그인으로 출시 될 것이라고 가정했습니다. AFAIK, GCM을 작동시키기 위해서는 플러그인이 필요하므로 수동 업데이트 확인 솔루션이라고 생각합니다.
herrmartell

1
확인 @yaneq의 구글 문서 도구, 지금 같은 문제를 가지고 안됐다
Lutaaya Huzaifah 이드리스

5

com.google. * 버전을 동일한 버전으로 변경하는 Gustavomcls의 솔루션이 효과적이었습니다.

buid.gradle (Module : app)에서 두 종속성을 9.2.1로 변경합니다.

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'

Firebase로 인해이 문제가 발생했지만 Firebase 버전을 9.2.1로 다운 그레이드하는이 솔루션이 마음에 들지 않습니다.
Sam Bellerose

2

app/build.gradle앱 모듈에서 열고 dependencies 블록 다음 줄 아래에 다시 씁니다. 이를 통해 플러그인은 사용중인 Play 서비스 버전을 확인할 수 있습니다

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

나는 여기 에서이 아이디어를 얻었다 . 이 튜토리얼에서 두 번째 요점은 위의 플러그인 행이 app/build.gradle파일 의 맨 아래에 있으므로 종속성 충돌이 발생하지 않는다는 것입니다. 그것이 당신을 도울 수 있기를 바랍니다.


반년 전에받은 답을 왜 반복합니까?
Bevor

2

Cordova OR 이온 하이브리드 앱

Firebase 클라우드 메시징 (FCM) 통합 후 Ionic 1 Cordova 빌드와 매우 유사한 문제가 있습니다.

다음 단계로이 문제를 해결했습니다.

따라서 하나의 수정은 다음과 같습니다 : platforms / android open project.properties (파일), 당신은 이와 같은 것을 가질 것입니다

cordova.system.library.1=com.google.android.gms:play-services-ads:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+

교체

+

다음과 같이 대상 버전 번호로 서명하십시오.

cordova.system.library.1=com.google.android.gms:play-services-ads:9.0.0
cordova.system.library.2=com.google.firebase:firebase-core:9.0.0
cordova.system.library.3=com.google.firebase:firebase-messaging:9.0.0

파일을 저장하십시오

그런 다음을 사용하여 빌드하십시오.

 ionic cordova run android

이것이 모두에게 도움이되기를 바랍니다.


이것은 단지 오류를 변경했습니다. 수천 가지 솔루션을 사용해도 동일한 오류가 발생했기 때문에 좋은 결과입니다.
spaceman

2

Gradle 하단에이 줄을 추가하십시오.

플러그인 적용 : 'com.google.gms.google-services'

그것이 작동하지 않는 상단이기 때문에 비슷한 문제에 직면했습니다.


1

Firebase도 포함되어 있다면 오류와 동일한 버전으로 만드십시오.


0

위치 서비스를 사용하려고 할 때까지 문제가 없었습니다.이 시점 apply plugin: 'com.google.gms.google-services'에서 파일이 아니라 파일의 맨 아래에 배치해야 했습니다. 그 이유는 상단에있을 때 충돌 문제가 있고 하단에 배치하면 이러한 문제를 피할 수 있기 때문입니다.


-1

대상 SDKSDK장치 보다 높을 수 있습니다 . 변경하십시오. 예를 들어, 장치에서 API 23을 실행하고 있지만 대상 SDK은 25입니다. 25를 23으로 변경하십시오.

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