【问题标题】:More than one library with package name 'com.google.android.gms.license'多个库,包名称为“com.google.android.gms.license”
【发布时间】:2018-03-21 12:17:43
【问题描述】:

我正在使用 angular 4 和 ionic 3。现在当我运行“ionic cordova run android”时 它给了我以下错误:

 "more than one library with package name 'com.google.android.gms.license'"

我的 project.property 文件:

target=android-26

   android.library.reference.1=CordovaLib   
   cordova.system.library.1=com.android.support:support-v4:27.1.0    
   cordova.system.library.2=com.android.support:support-v4:27.1.0    
   cordova.system.library.3=com.android.support:support-v4:27.1.0    
   cordova.system.library.4=com.android.support:appcompat-v7:25.+    
   cordova.gradle.include.1=cordova-plugin-firebase/starter-build.gradle    
   cordova.system.library.5=com.google.gms:google-services:+    
   cordova.system.library.6=com.google.android.gms:play-services-tagmanager:+    
   cordova.system.library.7=com.google.firebase:firebase-core:+    
   cordova.system.library.8=com.google.firebase:firebase-messaging:+    
   cordova.system.library.9=com.google.firebase:firebase-crash:+    
   cordova.system.library.10=com.google.firebase:firebase-config:+

我在 build.gradle 文件中的依赖项:

dependencies {
 compile fileTree(dir: 'libs', include: '*.jar')
 // SUB-PROJECT DEPENDENCIES START
 debugCompile(project(path: "CordovaLib", configuration: "debug"))
 releaseCompile(project(path: "CordovaLib", configuration: "release"))
 compile "com.android.support:support-v4:27.1.0"
 compile "com.android.support:appcompat-v7:25.+"
 compile "com.google.gms:google-services:+"
 compile "com.google.android.gms:play-services-tagmanager:+"
 compile "com.google.firebase:firebase-core:+"
 compile "com.google.firebase:firebase-messaging:+"
 compile "com.google.firebase:firebase-crash:+"
 compile "com.google.firebase:firebase-config:+"
 // SUB-PROJECT DEPENDENCIES END
         }

提前致谢:)

【问题讨论】:

标签: java android angular ionic-framework ionic3


【解决方案1】:

请更新您的 build.gradle 文件

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'
 }

将您的版本更改为2.3.0

它对我有用... 谢谢

【讨论】:

  • 你救了我的命;)
【解决方案2】:

将您的 project.property 文件更改为:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:27.1.0
cordova.system.library.2=com.android.support:support-v4:25.+
cordova.system.library.3=com.android.support:appcompat-v7:25.+
cordova.system.library.6=com.google.firebase:firebase-core:11.8.0
cordova.system.library.7=com.google.firebase:firebase-messaging:11.8.0
cordova.system.library.8=com.google.firebase:firebase-crash:11.8.0
cordova.system.library.9=com.google.firebase:firebase-config:11.8.0
cordova.system.library.9=com.google.firebase:firebase-auth:11.8.0
cordova.system.library.9=me.leolin:ShortcutBadger:1.1.4@aar

【讨论】:

    【解决方案3】:

    我认为您的问题在这里:

    编译“com.google.gms:google-services:+”

    编译“com.google.android.gms:play-services-tagmanager:+”

    您应该只导入特定的库,而不是像这样导入 gms 服务。

    【讨论】:

    • 我该怎么做? @Akash
    • 您可以在 google 上查找特定库的 gradle 导入链接,或者如果您愿意,可以使用“排除”标签,这样相同的库就不会再次导入
    【解决方案4】:

    你正在同时使用这两个库。

    compile "com.google.gms:google-services:+"
    compile "com.google.android.gms:play-services-tagmanager:+"
    

    这个"com.google.gms:google-services:+"库有所有播放服务库。

    删除这个依赖"com.google.android.gms:play-services-tagmanager:+",它就会工作。

    但这仍然不是添加com.google.gms:google-services:+ 的好方法,因为你添加了所有谷歌的依赖项。

    您可以使用特定的依赖来代替这种依赖,例如,如果您使用地图,则仅使用地图播放服务。

    这里是所有播放服务依赖列表https://developers.google.com/android/guides/setup

    我建议你只添加必需的依赖而不是播放服务通用依赖。

    【讨论】:

    • M 不使用 MAP.. 我只是使用 firebase @vishal
    • 例如。而不是使用 + 版本,而是使用特定版本的 firebase。您可以从 firebase site 获取。
    【解决方案5】:
    • 如果您已经在 /android/build.gradle 更改了版本但还没有工作。也许您需要在 node_modules 中检查一些库包。
    • 例如:react-native-onesignal 还编译了一些最高版本的播放服务(他们使用 +),所以它可以解决这个问题。
    • 您可以在根目录中放置一个脚本,并在包 .json 中添加 {"scripts": {"postinstall": "node changeVersionGoogleService.js"}} 以便在您 npm install 时运行它来自动更改您的版本。
    • 这是脚本:https://gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
    • 我的脚本现在自动更改“react-native-onesignal”, 'react-native-admob', 'react-native-maps', 'react-native-google-sign-in'

    【讨论】:

      【解决方案6】:

      这里讨论的解决方案都不适合我,所以我继续

      • 重命名 /platform/android 文件夹并移除 android 平台
      • 添加安卓平台ionic cordova platform add android
      • 由于这个问题,facebook 遇到了另一个问题,它有一个解决方案 here,您需要在 platforms/android/app/src/main/res/values/strings.xml 文件中添加您的应用程序 ID 和名称

      编译后工作正常。

      升级到cordova 7时我遇到了这个问题。

      【讨论】:

        【解决方案7】:

        只需添加:

        googlePlayServicesVersion=11.8.0
        

        到你的 gradle.properties

        玩得开心……

        【讨论】:

          猜你喜欢
          • 2018-09-04
          • 2018-08-30
          • 1970-01-01
          • 1970-01-01
          • 2018-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多