包名 'com.google.android.gms' 的多个库(仅限 8.1)和 Cordova

More than one library with package name 'com.google.android.gms' (only 8.1) and Cordova

当我更新 Cordova 和 Android SDK(都是最新版本)时,我的 Cordova 项目中出现了非常奇怪的错误。

自从更新后,我在 gradle 中遇到了以下错误:错误:包名称为 'com.google.android.gms'

的库不止一个

Cordova 插件没有改变,在更新之前它运行良好。 Removing/adding Android 平台或清理它无法修复此错误。

似乎是由于 com.google.android.gms

的 8.1 版本

我使用 cordova-plugin-google-analytics,它使用: com.google.android.gms:play-services-analytics:+ (我假设 + 表示最新版本?) 由于这一行和更新,项目不再构建 用一个值(例如 7.5.0 等)替换 + 效果很好

8.x 是否有重大变化?

我也看到了这个post:https://code.google.com/p/android/issues/detail?id=187464

现在我会强制一个值,但如果您有更好的解决方案,欢迎您

谢谢

我已经用钩子解决了这个问题。它不完美但有效。

在您的 after_platform_add 中添加此脚本

#!/usr/bin/env node


var fs = require('fs');
var path = require('path');
var fork = require('child_process').fork,
    shell = require("shelljs");

var dir = './platforms/android/';

fs.writeFileSync(dir + 'build-extras.gradle', 'configurations { all*.exclude group: \'com.android.support\', module: \'support-v4\'}', 'utf8');