Ошибка конфликта плагинов: плагин Google plus и Push

sqlchild спросил: 28 апреля 2018 в 08:51 в: android

Мне нужно использовать google plus и push-уведомление, но Phonegap Build дает ошибку:

Исправляйте конфликт версии либо путем обновления версии thegoogle-services плагин (информация о последней версии доступна на bintray.com/android/...) или обновлена ​​версия com.google.android.gms до 11.6.2.

index.html :

<!DOCTYPE html>
<html>
  <head>
    <title>Device Ready Example</title>    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" src="push.js"></script>     <script>     // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }    // device APIs are available
    //
    function onDeviceReady() {
        // Now safe to use device APIs
        var push = PushNotification.init({
            "android": {
              "senderID": "xxxxxxxxxx"
            },
        });    push.on('registration', function(data) {
        alert('registration event: ' + data.registrationId);
        console.log('registration event: ' + data.registrationId);        var oldRegId = localStorage.getItem('registrationId');
        if (oldRegId !== data.registrationId) {
        // Save new registration ID
        localStorage.setItem('registrationId', data.registrationId);
        // Post registrationId to your app server as the value has changed
     }    var parentElement = document.getElementById('registration');
    var listeningElement = parentElement.querySelector('.waiting');
    var receivedElement = parentElement.querySelector('.received');    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');
  });
}    </script>
  </head>
  <body onload="onLoad()">
  </body>
</html>

config.xml:

    <widget id="com.phonegap.notificationtest1" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
        <name>notificationtest1</name>
        <description>
         notificationtest1
        </description>
        <author email="support@phonegap.com" href="http://phonegap.com">
            sqlchild
        </author>             <preference name="android-minSdkVersion" value="17" />             <preference name='phonegap-version' value='cli-8.0.0' />            <preference name='pgb-builder-version' value='2' />    <plugin name="phonegap-plugin-push" spec="2.1.3">   
            <param name="SENDER_ID" value="xxxxxxxxxxxx" />
    </plugin>         <plugin name="cordova-plugin-googleplus" source="npm" spec="5.3.0"></plugin>          <platform name="android">               <resource-file src="app/google-services.json" target="app/google-services.json" />          </platform>              <content src="index.html" />

1 ответ

Есть решение
DaveAlden ответил: 28 апреля 2018 в 09:32

cordova-plugin-googleplus в настоящее время выдает v11.8.0 библиотеки Play Services (com.google.android.gms).

phonegap-plugin-push в настоящее время выдает v11.6.2 из библиотеку Firebase, которая, в свою очередь, выдает v11.6.2 библиотеки Служебных услуг.

Следовательно, конфликтующие версии библиотеки Play Services вызывают ошибку сборки.

phonegap-plugin-push теперь также зависит от кордова-поддержки-google-сервисов, чтобы вставить v3.2.0 плагина Google Services, который также косвенно ссылается на библиотеку Служб Службы.

TL; DR: вам нужно сделать укажите ту же версию библиотеки Play Services как cordova-plugin-googleplus.

Если вы строите локально, вы можете использовать cordova-android-play-services-gradle- релиз для этого:

cordova plugin add cordova-android-play-services-gradle-release  --variable PLAY_SERVICES_VERSION=11.6.2

Однако вы строите с помощью сборки Phonegap, которая не поддерживает выполнение скриптов hooks, на которые полагается phonegap-plugin-push.

Итак, ваше лучшее решение, вероятно, связано с fork cordova-android-play-services-gradle-release и установите версию Служебных услуг в cordova-plugin-googleplus в 11.6.2, затем используйте эту fork в вашей сборке.

sqlchild ответил: 28 апреля 2018 в 09:43
Хорошо, Дейв, спасибо, сделаю это и вернусь к вам :) и дайте знать
sqlchild ответил: 28 апреля 2018 в 09:44
Можете ли вы также предоставить мне шаги по созданию локально
DaveAlden ответил: 28 апреля 2018 в 09:54
>Do I need to upload it on npm? нет ссылки на него непосредственно из github в вашем файле config.xml: <plugin name="cordova-plugin-googleplus" source="git" spec="https://github.com/yourGithubUsername/cordova-plugin-googleplus"></plugin>
sqlchild ответил: 28 апреля 2018 в 09:50
Я разветвил плагин, но теперь как его использовать в моем файле config.xml? Нужно ли загружать его на npm?
DaveAlden ответил: 28 апреля 2018 в 09:57
>Can you also provide me with the steps to build locally. См. https://cordova.apache.org/docs/en/latest/guide/cli/index.html и https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html