บริการ Google Play GCM 9.2.0 ขอให้“ อัปเดต” กลับไปเป็น 9.0.0


178

เมื่อเช้านี้ฉันเริ่มอัปเดตไลบรารีโครงการเวอร์ชันล่าสุดของฉัน

ฉันพยายามอัปเดต GCM เป็นรุ่นล่าสุด 9.2.0 แต่ฉันได้รับข้อผิดพลาดนี้:

ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอพ: 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"

    ...
}

ใครมีปัญหาเดียวกัน / แก้ไขปัญหาเดียวกันได้หรือไม่

ขอบคุณ

แก้ไข

เห็นได้ชัดว่าคุณต้องใช้ปลั๊กอิน GSM ที่ด้านล่างของไฟล์แอพ / build.gradle อื่นเวอร์ชัน 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 ก็มี bug stackoverflow.com/questions/37361651/ …และวิธีแก้ปัญหานี้น่าจะอัปเดตเป็น 9.2.0 .... ซึ่งเป็นไปไม่ได้เนื่องจากข้อผิดพลาดที่นี่ :-(
mbonnin

6
มันทำงานได้ถ้าฉันใช้ปลั๊กอินในตอนท้ายของไฟล์ build.gradle เช่น Gusthema พูดว่าร้อง
mbonnin

อ่านวิธีการแก้ไขปัญหานี้วิธีการที่เหมาะสมในการโพสต์ของฉันที่นี่
Pedro Varela

คำตอบ:


507

คุณมีสาย

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

บรรทัดที่ด้านล่างของไฟล์ build.gradle ของแอปของคุณหรือไม่

ฉันเห็นข้อผิดพลาดบางอย่างเมื่อมันอยู่ด้านบนและตามที่เขียนไว้ที่นี่ควรอยู่ที่ด้านล่าง


11
ไม่เป็นความจริงปลั๊กอิน gms ควรอยู่ที่ด้านล่างของไฟล์อย่างที่คุณเห็นบน docs สำหรับ 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

ฉันมีปัญหาเดียวกันวันนี้ 2559 - ตุลาคม - 06 ฉันแก้ไขด้วยสิ่งนี้:

ฉันเปลี่ยนการอ้างอิงทั้งหมดที่เริ่มต้นด้วย 9.?.? เป็น 9.6.1 ฉันคอมไพล์ด้วย sdk เวอร์ชัน 24 และเวอร์ชั่นเป้าหมาย 17

มีแพ็คเกจอื่นในโซลูชันของฉันเพราะฉันใช้สิ่งต่าง ๆ มากกว่านั้นก็คือการพิสูจน์ตัวตนเท่านั้น

หลังจากเปลี่ยน build.gradle ของคุณ (โมดูล: แอพ) ด้วยรหัสด้านล่างให้ทำ:

  1. ใส่ชื่อแพ็กเกจของคุณในบรรทัดด้วยแอปพลิเคชันคำว่า "com.YOUR_PACKAGE_HERE"

  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 ไลบรารี่จะเปิดตัวก่อนปลั๊กอินและมันเป็นไปไม่ได้ที่จะใช้เวอร์ชั่นใหม่เพราะไม่สามารถใช้กับปลั๊กอินเก่าได้ ฉันไม่ทราบว่าจำเป็นต้องใช้ปลั๊กอินหรือไม่ ฉันจำเวลาที่มันไม่ได้ วิธีเดียวคือรอรุ่นปลั๊กอินใหม่หรือคุณสามารถลองลบการอ้างอิงปลั๊กอิน แต่อย่างที่ฉันบอกว่าฉันไม่แน่ใจว่า gcm จะทำงานได้หรือไม่ สิ่งที่ฉันรู้ว่าคุณสมบัติหลักของเวอร์ชั่น 9.2.0 คือ API การรับรู้ใหม่https://inthecheesefactory.com/blog/google-awaware-api-in-action/enหากคุณไม่ต้องการคุณสามารถใช้ 9.0 0 รุ่นโดยไม่มีปัญหาใด ๆ


เอ่อไปคิดกัน เนื่องจากไม่มีเอกสารที่ระบุเป็นอย่างอื่นฉันถือว่ารุ่นใหม่ล่าสุดจะเปิดตัวด้วยปลั๊กอินที่จำเป็น AFAIK คุณต้องใช้ปลั๊กอินเพื่อทำให้ GCM ทำงานดังนั้นฉันเดาว่านี่เป็นโซลูชันตรวจสอบด้วยตนเองสำหรับการอัปเดต
herrmartell

1
แน่นอน @yaneq google docs sucks ได้รับปัญหาเดียวกันตอนนี้
Lutaaya Huzaifah Idris

5

วิธีแก้ปัญหาของ Gustavomcls ในการเปลี่ยน com.google. * version เป็น version เดียวกันใช้งานได้สำหรับฉัน

ฉันเปลี่ยนการพึ่งพาทั้งสองเป็น 9.2.1 ใน buid.gradle (โมดูล: แอป)

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จากโมดูลแอพแล้วเขียนใหม่ด้านล่างบรรทัดหลังจากบล็อกการอ้างอิง สิ่งนี้ทำให้ปลั๊กอินสามารถระบุว่าคุณใช้บริการ Play เวอร์ชันใด

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

ผมได้ความคิดนี้มาจากที่นี่ ในบทช่วยสอนนี้จุดที่สองบอกว่าปลั๊กอินด้านบนมีบรรทัดด้านล่างของapp/build.gradleไฟล์ของคุณเพื่อไม่ให้มีการชนกันของข้อมูล หวังว่ามันจะช่วยคุณออก


ทำไมคุณถึงทำซ้ำคำตอบที่ได้รับเมื่อครึ่งปีที่แล้ว?
Bevor

2

สำหรับแอพ Cordova หรือ Ionic Hybrid

ฉันมีปัญหาคล้ายกันมากกับ Ionic 1 Cordova Build หลังจากรวม Firebase Cloud Messaging (FCM)

ฉันแก้ไขปัญหานี้ตามขั้นตอนต่อไปนี้

ดังนั้นหนึ่งการแก้ไขคือ: ภายในแพลตฟอร์ม / 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

ฉันหวังว่านี่จะใช้ได้ผลกับทุกคน


นี่เพิ่งเปลี่ยนข้อผิดพลาด นั่นเป็นสิ่งที่ดีเพราะฉันได้รับข้อผิดพลาดเดียวกันเท่านั้นแม้จะมีวิธีแก้ไขหลายพันครั้งก็ตาม
นักบินอวกาศ

2

เพิ่มบรรทัดนี้ที่ด้านล่างของการไล่ระดับสี

ใช้ปลั๊กอิน: 'com.google.gms.google-services'

เพราะมันด้านบนมันไม่ทำงานฉันกำลังเผชิญกับปัญหาที่คล้ายกัน


1

หากคุณมี Firebase รวมอยู่ด้วยให้สร้างเวอร์ชันเดียวกันกับที่ข้อผิดพลาดแจ้ง


0

ฉันไม่ได้มีปัญหากับสิ่งนี้จนกว่าฉันจะพยายามใช้บริการตำแหน่ง ณ จุดที่ฉันต้องวางapply plugin: 'com.google.gms.google-services'ที่ด้านล่างของไฟล์มากกว่าด้านบน เหตุผลที่เมื่อคุณมีมันที่ด้านบนมีปัญหาการชนกันและโดยการวางไว้ที่ด้านล่างคุณหลีกเลี่ยงปัญหาเหล่านั้น


-1

เป้าหมายของคุณSDKอาจสูงกว่าSDKอุปกรณ์เปลี่ยนสิ่งนั้น ตัวอย่างเช่นอุปกรณ์ของคุณใช้ API 23 แต่เป้าหมายของคุณSDKคือ 25 เปลี่ยน 25 เป็น 23

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.