我是使用离子1和cordova的新手,我尝试安装cordova-plugin-fcm
使用此评论:
cordova plugin add cordova-plugin-fcm
但是当我建立使用时:
ionic cordova run android
我收到此错误:
脚本'D:\ net \ netAppV2 \ platforms \ android \ cordova-plugin -fcm \ netappv2-FCMPlugin.gradle'line:13
- 出了什么问题: 评估脚本时出现问题。 无法应用插件[class'com.google.gms.googleservices.GoogleServicesPlugin'] 对于输入字符串:“+”
这是netappv2-FCMPlugin.gradle
的内容:
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:+'
classpath 'com.google.gms:google-services:3.0.0'
}
}
// apply plugin: 'com.google.gms.google-services'
// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
请有人帮我解决这个问题。
感谢。
答案 0 :(得分:1)
您可以通过以下方式解决此问题:
1.从plugins文件夹中打开你的plugin.xml
cordova-plugin-fcm。
2.查找+
并替换版本11.0.1
3.然后删除并添加平台
4.然后建立
答案 1 :(得分:0)
我遇到了相同的问题,这是由play-services
版本引起的。
您可以使用@Mani的临时修复程序,但是如果您不仅需要临时修复程序,还应该执行一些其他解决方法:
1)创建before_prepare
类型的钩子。那是JS文件,内容:
// That hook needed for fixing ANDROID Gradle issues with multiple `google.android.gms` services versions
// details:
// https://github.com/phonegap/phonegap-plugin-push/issues/1718
const fs = require('fs');
const path = require('path');
const FCM_VERSION = '11.8.0';
// You can include more of each string if there are naming conflicts,
// but for the GMS libraries each should be unique enough.
// The full list of libraries is here:
// https://developers.google.com/android/guides/setup
const LIBRARIES = [
'play-services-analytics',
];
const createRegex = (item) => new RegExp(`${item}:.*`, 'ig');
const createReplace = (item) => `${item}:${FCM_VERSION}`;
module.exports = (ctx) => {
const Q = ctx.requireCordovaModule('q');
const deferred = Q.defer();
const gradle = path.join(ctx.opts.projectRoot, 'platforms', 'android', 'project.properties');
fs.readFile(gradle, 'utf8', (err, data) => {
if (err) {
return deferred.reject(err);
}
let result = data;
LIBRARIES.forEach((lib) => {
result = result.replace(createRegex(lib), createReplace(lib));
})
return fs.writeFile(gradle, result, 'utf8', (err) => {
if (err) {
deferred.reject(err);
}
deferred.resolve();
});
});
return deferred.promise;
};
2)在您的android平台配置中声明该钩子
<hook type="before_prepare" src="hooks/google-services-versions-fix.js" />
3)在android/project.properties
中查找所有具有+
并与play-services
相关的版本,例如:
cordova.system.library.7=com.google.android.gms:play-services-analytics:+
4)添加此类依赖项以挂钩到const LIBRARIES =
部分。
这将把所需的依赖项更新为适当的版本,并解决了该问题!