多个图书馆名称包含com.google.android.gms.license'

时间:2018-03-21 12:17:43

标签: java android angular ionic-framework ionic3

我使用角度4和离子3.现在当我运行"离子cordova运行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
         }

提前致谢:)

7 个答案:

答案 0 :(得分:6)

请更新build.gradle文件

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

将您的版本更改为2.3.0

它为我工作...... 谢谢

答案 1 :(得分:0)

我认为你的问题来了:

  

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

     

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

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

答案 2 :(得分:0)

你们正在使用这两个图书馆。

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:+的好方法,因为您无需添加所有Google依赖项。

您可以使用特定依赖项代替此依赖项,例如,如果您使用的是地图,则只使用地图播放服务。

以下是所有播放服务依赖关系https://developers.google.com/android/guides/setup的列表。

我建议你只添加必需的依赖项,而不是播放服务普遍依赖项。

答案 3 :(得分:0)

将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

答案 4 :(得分:0)

  • 如果您已在/android/build.gradle中更改了版本但尚未使用。也许你需要在node_modules检查一些库包。
  • 例如:react-native-onesignal还会使用最高版本编译一些播放服务(他们使用+),这样可以解决这个问题。
  • 您可以将脚本放在根目录下,并在包.json中添加{“scripts”:{“postinstall”:“node changeVersionGoogleService.js”}},这样它就可以在您安装npm时自动更改您的版本。< / LI>
  • 这是脚本:https://gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
  • 我的脚本现在自动更改'react-native-onesignal', '反应天然-的AdMob', “反应天然-地图”, '反应天然-谷歌-登录'

答案 5 :(得分:0)

这里讨论的解决方案都没有为我工作所以我继续

  • 重命名了/platform/android文件夹并删除了android平台
  • 添加android平台ionic cordova platform add android
  • 因为这个问题而面临另一个问题,因为它有一个解决方案here,您需要在platforms/android/app/src/main/res/values/strings.xml文件中添加您的应用ID和名称

之后编译工作正常。

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

答案 6 :(得分:0)

只需添加:

googlePlayServicesVersion=11.8.0

到你的gradle.properties

玩得开心......