包含名称为“com.google.android.gms.license”的多个库
我正在使用角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 }
提前致谢 :)
将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
请更新build.gradle文件
dependencies { classpath 'com.android.tools.build:gradle:2.3.0' }
将您的版本更改为2.3.0
它为我工作…谢谢
我想你的问题来了:
编译“com.google.gms:google-services:+”
编译“com.google.android.gms:play-services-tagmanager:+”
您应该只导入特定的库,而不是像这样导入gms服务。
您正在使用这两个库。
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:+
的好方法com.google.gms:google-services:+
,因为没有必要添加所有谷歌的依赖项。
您可以使用特定依赖项代替此依赖项,例如,如果您使用的是地图,则只使用地图播放服务。
以下是所有播放服务依赖关系https://developers.google.com/android/guides/setup的列表。
我建议你只添加必需的依赖,而不是播放服务普遍依赖。
- 如果您已经在/android/build.gradle中更改了版本但尚未使用。 也许你需要在node_modules检查一些库包。
- 例如:react-native-onesignal还会编译一些具有最高版本的播放服务(他们使用+),因此它可以解决这个问题。
- 您可以将脚本放在根目录下,并在包.json中添加{“scripts”:{“postinstall”:“node changeVersionGoogleService.js”}},这样它就可以在您安装npm时自动更改您的版本。
- 这是脚本: https : //gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
- 我的脚本现在自动更改’react-native-onesignal’,’react-native-admob’,’react-native-maps’,’react-native-google-sign-in’
这里讨论的解决方案都没有为我工作,所以我继续
- 重命名
/platform/android
文件夹并删除android平台 - 添加android平台
ionic cordova platform add android
- 由于这有一个解决方案,你需要在
platforms/android/app/src/main/res/values/strings.xml
文件中添加你的应用程序ID和名称,因此面对facebook的另一个问题
编译后工作正常。
升级到cordova 7时,问题出现了。
只需添加:
googlePlayServicesVersion=11.8.0
到你的gradle.properties
玩得开心 …