Plugin conflict error : Google plus and Push plugin
Plugin conflict error : Google plus and Push plugin
我需要同时使用 google plus 和推送通知,但是 Phonegap Build 出现错误 :
Please fix the version conflict either by updating the version of the
google-services plugin (information about the latest version is
available at bintray.com/android/…) or updating the version of
com.google.android.gms to 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" />
cordova-plugin-googleplus
currently pins v11.8.0 Play 服务库 (com.google.android.gms
)。
phonegap-plugin-push
currently pins v11.6.2 的 Firebase 库,它又固定了 Play 服务库的 v11.6.2。
因此,Play 服务库的版本冲突导致了您的构建错误。
phonegap-plugin-push
现在也 depends on cordova-support-google-services to pull in v3.2.0 of the Google Services plugin,它也间接引用了 Play 服务库。
TL;DR:您需要让 cordova-plugin-googleplus
指定与 phonegap-plugin-push
.
相同版本的 Play 服务库
如果您在本地构建,可以使用 cordova-android-play-services-gradle-release 来执行此操作:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=11.6.2
但是,您正在使用 doesn't support the execution of hooks scripts cordova-android-play-services-gradle-release
所依赖的 Phonegap Build 进行构建。
所以您最好的解决方案可能是分叉 cordova-plugin-googleplus
并在 plugin.xml
中将 Play 服务版本设置为 11.6.2
,然后在您的构建中使用该分叉。
我需要同时使用 google plus 和推送通知,但是 Phonegap Build 出现错误 :
Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at bintray.com/android/…) or updating the version of com.google.android.gms to 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" />
cordova-plugin-googleplus
currently pins v11.8.0 Play 服务库 (com.google.android.gms
)。
phonegap-plugin-push
currently pins v11.6.2 的 Firebase 库,它又固定了 Play 服务库的 v11.6.2。
因此,Play 服务库的版本冲突导致了您的构建错误。
phonegap-plugin-push
现在也 depends on cordova-support-google-services to pull in v3.2.0 of the Google Services plugin,它也间接引用了 Play 服务库。
TL;DR:您需要让 cordova-plugin-googleplus
指定与 phonegap-plugin-push
.
如果您在本地构建,可以使用 cordova-android-play-services-gradle-release 来执行此操作:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=11.6.2
但是,您正在使用 doesn't support the execution of hooks scripts cordova-android-play-services-gradle-release
所依赖的 Phonegap Build 进行构建。
所以您最好的解决方案可能是分叉 cordova-plugin-googleplus
并在 plugin.xml
中将 Play 服务版本设置为 11.6.2
,然后在您的构建中使用该分叉。