【问题标题】:More than one library with package name 'com.google.android.gms' (only 8.1) and Cordova多个包名称为“com.google.android.gms”(仅 8.1)和 Cordova 的库
【发布时间】:2015-09-30 19:34:02
【问题描述】:

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

自更新以来,我在 gradle 中遇到以下错误:错误:多个库的包名称为“com.google.android.gms”

Cordova 插件没有改变,并且在更新之前运行良好。 删除/添加 Android 平台或清理它并不能修复此错误。

似乎是由于 com.google.android.gms 的 8.1 版本

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

8.x 有重大变化吗?

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

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

谢谢

【问题讨论】:

    标签: cordova gradle google-play-services


    【解决方案1】:

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

    在你的 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');
    

    【讨论】:

    • 感谢您的解决方案,比我的好。
    • 我想编辑(但被 5 分钟阻止)事实上我想知道这个错误的原因是什么。 7.5.0 和 7.8.0 有效。 8.1.0 不工作是谷歌的错吗? (随着 IOS9 的发布和大量的重大变化,这个月我们运气不好^^)
    • 我不记得了,但是在科尔多瓦 5+ 中,一个谷歌库(我认为是谷歌播放服务)包括该库和分析插件。因此,在构建时,gradle 会发现重复库并崩溃。这是一个修复,直到分析插件更新此错误,并删除了 cordova 5 项目的库
    • 啊,我现在明白了。也许,我们应该通知分析插件的所有者?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多