Error: more than one library with package name com.google.android.gms.license
Error: more than one library with package name com.google.android.gms.license
当我尝试 运行 命令时 ionic cordova build android
出现如上标题所示的错误。然后我尝试删除 gms
之一,当我再次构建时,删除的它再次出现。如何解决这个问题?
这是我对 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.google.android.gms:play-services-auth:+" // i remove this
compile "com.google.android.gms:play-services-identity:+"
compile "com.facebook.android:facebook-android-sdk:4.+"
// SUB-PROJECT DEPENDENCIES END
}
当你运行命令ionic cordova你可以改变版本,我有同样的错误,我通过改变节点模块的版本解决了这个问题,我的插件 cordova,版本关闭 android studio.
我的配置如下:
ANDROID工作室:3.0.0
pply plugin: 'com.android.application'
构建脚本{
存储库{
中心()
行家{
url “https://maven.google.com”
}
}
// Switch the Android Gradle plugin version requirement depending on the
// installed version of Gradle. This dependency is documented at
// http://tools.android.com/tech-docs/new-build-system/version-compatibility
// and https://issues.apache.org/jira/browse/CB-8143
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}
}
// 允许插件通过 build-extras.gradle 声明 Maven 依赖项。
所有项目{
存储库{
中心()
行家{
url “https://maven.google.com”
}
}
}
任务包装器(类型:包装器){
gradle版本 = '2.14.1'
}
...
...
...
...
...
应用插件:'com.google.gms.google-services'
Gradle 版本:3.3
com.google.android.gms:play-services:11.4.2
有时节点模块和cordova插件会自己出错,所以你在文件夹中手动删除。
更新时不要忘记删除和添加 cordova 插件。
尝试进入android studio => files => project structure => project => ok
通常 android 工作室应该同步您的 gradle
或
错误:包名称为 com.google.android.gms.license
的库不止一个
就我而言,问题是因为我包括:
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.google.android.gms:play-services:4.4.52'
穿戴式游戏服务和常规游戏服务。我注释掉了可穿戴部分,它起作用了。
不确定我是否需要它,但项目向导默认包含它
希望能帮到你。继续!
我最近遇到了这个问题,对我来说问题是由于某种原因 android project.properties 文件是为 com.google.android.gms 生成的不同版本,因此:
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:+
cordova.system.library.3=com.google.android.gms:play-services-identity:+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
这使得 library.2 和 library.3 需要一个版本,而 library.4 需要一个更具体的版本,从而导致在编译过程中引用重复的库。
虽然我不认为这应该是最终解决方案,但添加特定库对我有用。因此:
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
发生这种情况是因为 Play 服务 12.0.0。我继续将依赖项降级到 11.8.0(我项目的最后一个已知工作版本)。我正在使用本机反应。我有 2 个依赖项,它们引入了 google 播放服务的 12.0.0 - com.google.android:play-services...12.0.0
希望这有帮助。
可能与 Google Play services 12.0.0 的新版本有关(2018 年 3 月 20 日发布)
我已经解决了它修复依赖关系:
在 android/build.gradle
中添加配置
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
// Add force (11.0.0 is version you want to use)
force 'com.google.firebase:firebase-core:11.0.0'
force 'com.google.firebase:firebase-crash:11.0.0'
force 'com.google.firebase:firebase-analytics:11.0.0'
force 'com.google.firebase:firebase-messaging:11.0.0'
force 'com.google.android.gms:play-services-base:11.0.0'
force 'com.google.android.gms:play-services-maps:11.0.0'
force 'com.google.android.gms:play-services-wallet:11.0.0'
}
}
}
}
一组依赖项来自您的android/app/build.gradle
在build.gradle中添加这个
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-ads:11.8.0"
force "com.google.android.gms:play-services-base:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
force "com.google.android.gms:play-services-basement:11.8.0"
force "com.google.android.gms:play-services-tagmanager:11.8.0"
force 'com.google.firebase:firebase-core:11.8.0'
force 'com.google.firebase:firebase-crash:11.8.0'
force 'com.google.firebase:firebase-auth:11.8.0'
force 'com.google.firebase:firebase-common:11.8.0'
force 'com.google.firebase:firebase-config:11.8.0'
force 'com.google.firebase:firebase-messaging:11.8.0'
}
}
如果这不起作用,请在您的项目中搜索字符串“12.0.0”并添加到缺少的库上方的列表中
为了在我的 Ionic3 应用程序上成功构建,我必须做的事情:
- 添加插件cordova-android-play-services-gradle-release
- 移除并re-add android 平台
- 11.+ 在 platform/android/project.properties 文件中用于库(特别是如果您使用的是 firebase)
- 11.+ 用于 platforms/android/cordova-plugin-firebase/-build.gradle
中的依赖项
- 以上变化在platforms/android/build.gradle
这可能是让事情顺利进行的最糟糕的方法,但有点救了我的命。希望这对某人有所帮助!
对我来说,这是将版本号添加到 project.properies 文件中的 Google Play Services 的问题。
因此您需要更改如下内容:
android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:
cordova.system.library.3=com.google.android.gms:play-services-identity:
至:
android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:11.
cordova.system.library.3=com.google.android.gms:play-services-identity:11.
就我而言
npm update
cordova platform remove android
cordova platform add android@6.4.0
并在 platform/android/projet.properties
中替换
cordova.system.library.1=com.android.support:support-v4+
至
cordova.system.library.1=com.android.support:support-v4:26+
只需将 platform/android/project.properties 更改为
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
这对我有用
对我有用。
node_modules/react-native-camera/android/build.gradle:
dependencies {
compile 'com.facebook.react:react-native:+'
compile 'com.google.android.gms:play-services-gcm:11.8.0' // update by me on
20180321
}
更新
此错误的原因已被确定为 v12.0.0 of the Google Play Services library 中的错误:
Known Issues with version 12.0.0
-license POM dependencies cause "more than one library with package name ‘com.google.android.gms.license'" issues in Ionic Pro.
错误已在 v12.0.1 of the Google Play Services library 中修复:
Restores unique package names for runtime linked -license artifacts which affected some build systems' (e.g. Ionic Pro) compatibility issues.
因此,通过 cordova-android-play-services-gradle-release 插件指定 Play Services Library v12.0.1 或更高版本可以解决问题,例如:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=12.+
在 build.gradle
中只有这个对我有用:
allprojects {
repositories {
...
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.google.android.gms') {
details.useVersion '11.8.0'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '11.8.0'
}
}
}
}
}
https://github.com/evollu/react-native-fcm/issues/857#issuecomment-375243825
1. 转到 project.properties(在您的平台文件夹中)
2. 我在 "project.properties" 中只使用了 google 分析,不得不在版本末尾添加“11.+”,并且这对我有用。不确定这是否是长期修复,但它起到了作用。
cordova.system.library.2=com.google.android.gms:play-services-analytics:11.+
我在我的 ionic 项目中遇到了同样的错误,经过少量搜索后,我阅读了有关升级 Android 平台的信息,这是最新的 Android Gradle 插件所必需的构建应用程序。
解决方法很简单只需按照下面提到的步骤即可。
- 删除现有的 Anroid 平台
ionic cordova platform remove android
添加最低版本 Android SDK 构建工具 26.0.2 通过 Android SDK 管理器使用最新的 Android Gradle 插件来构建应用
为 Android 平台添加最低版本
ionic cordova platform add android@^6.4.0
供参考,来自:https://developers.google.com/android/guides/releases
Google Android
的 API
2018 年 3 月 20 日 - 版本 12.0.0
版本 12.0.0 的已知问题
- ...
- -license POM 依赖项导致 Ionic Pro 出现 "more than one library with package name ‘com.google.android.gms.license'" 问题。
- ...
我们将很快提供更新的 12.0.1 版本来解决这些问题。
我的解决方法
(基于 jeremy castelli's and keldar 的后续评论)
我正在使用以下解决方法(我强调,这是一种解决方法)。
将以下内容添加到 build-extras 的底部。gradle,必要时创建文件。
configurations.all {
resolutionStrategy {
force 'com.google.firebase:firebase-core:11.8+',
'com.google.firebase:firebase-messaging:11.8+',
'com.google.firebase:firebase-crash:11.8+',
'com.google.firebase:firebase-config:11.8+',
'com.google.firebase:firebase-auth:11.8+',
'com.google.android.gms:play-services-tagmanager:11.8+',
'com.google.android.gms:play-services-location:11.8+'
}
}
包含所有 firebase 和所有 android.gms 库引用很重要,如果您只从这里遗漏了一个,它仍然无法构建。 Grep 您的 gradle 文件以获取所有参考资料。就我而言,我错过了在 firebase 插件文件夹的 .gradle 文件中引用的 firebase-auth。
resolutionStrategy force
所做的是覆盖 project/plugins 所做的版本选择并强制 gradle 引用特定版本。
使用此解决方法无需编辑 project.properties 或任何其他 gradle 文件。
当我尝试 运行 命令时 ionic cordova build android
出现如上标题所示的错误。然后我尝试删除 gms
之一,当我再次构建时,删除的它再次出现。如何解决这个问题?
这是我对 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.google.android.gms:play-services-auth:+" // i remove this
compile "com.google.android.gms:play-services-identity:+"
compile "com.facebook.android:facebook-android-sdk:4.+"
// SUB-PROJECT DEPENDENCIES END
}
当你运行命令ionic cordova你可以改变版本,我有同样的错误,我通过改变节点模块的版本解决了这个问题,我的插件 cordova,版本关闭 android studio.
我的配置如下:
ANDROID工作室:3.0.0
pply plugin: 'com.android.application'
构建脚本{ 存储库{ 中心() 行家{ url “https://maven.google.com” } }
// Switch the Android Gradle plugin version requirement depending on the
// installed version of Gradle. This dependency is documented at
// http://tools.android.com/tech-docs/new-build-system/version-compatibility
// and https://issues.apache.org/jira/browse/CB-8143
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}
}
// 允许插件通过 build-extras.gradle 声明 Maven 依赖项。 所有项目{ 存储库{ 中心() 行家{ url “https://maven.google.com” } } }
任务包装器(类型:包装器){ gradle版本 = '2.14.1' }
...
...
...
...
...
应用插件:'com.google.gms.google-services'
Gradle 版本:3.3 com.google.android.gms:play-services:11.4.2
有时节点模块和cordova插件会自己出错,所以你在文件夹中手动删除。 更新时不要忘记删除和添加 cordova 插件。
尝试进入android studio => files => project structure => project => ok 通常 android 工作室应该同步您的 gradle
或
错误:包名称为 com.google.android.gms.license
的库不止一个就我而言,问题是因为我包括:
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.google.android.gms:play-services:4.4.52'
穿戴式游戏服务和常规游戏服务。我注释掉了可穿戴部分,它起作用了。 不确定我是否需要它,但项目向导默认包含它
希望能帮到你。继续!
我最近遇到了这个问题,对我来说问题是由于某种原因 android project.properties 文件是为 com.google.android.gms 生成的不同版本,因此:
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:+
cordova.system.library.3=com.google.android.gms:play-services-identity:+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
这使得 library.2 和 library.3 需要一个版本,而 library.4 需要一个更具体的版本,从而导致在编译过程中引用重复的库。
虽然我不认为这应该是最终解决方案,但添加特定库对我有用。因此:
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
发生这种情况是因为 Play 服务 12.0.0。我继续将依赖项降级到 11.8.0(我项目的最后一个已知工作版本)。我正在使用本机反应。我有 2 个依赖项,它们引入了 google 播放服务的 12.0.0 - com.google.android:play-services...12.0.0 希望这有帮助。
可能与 Google Play services 12.0.0 的新版本有关(2018 年 3 月 20 日发布)
我已经解决了它修复依赖关系:
在 android/build.gradle
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
// Add force (11.0.0 is version you want to use)
force 'com.google.firebase:firebase-core:11.0.0'
force 'com.google.firebase:firebase-crash:11.0.0'
force 'com.google.firebase:firebase-analytics:11.0.0'
force 'com.google.firebase:firebase-messaging:11.0.0'
force 'com.google.android.gms:play-services-base:11.0.0'
force 'com.google.android.gms:play-services-maps:11.0.0'
force 'com.google.android.gms:play-services-wallet:11.0.0'
}
}
}
}
一组依赖项来自您的android/app/build.gradle
在build.gradle中添加这个
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-ads:11.8.0"
force "com.google.android.gms:play-services-base:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
force "com.google.android.gms:play-services-basement:11.8.0"
force "com.google.android.gms:play-services-tagmanager:11.8.0"
force 'com.google.firebase:firebase-core:11.8.0'
force 'com.google.firebase:firebase-crash:11.8.0'
force 'com.google.firebase:firebase-auth:11.8.0'
force 'com.google.firebase:firebase-common:11.8.0'
force 'com.google.firebase:firebase-config:11.8.0'
force 'com.google.firebase:firebase-messaging:11.8.0'
}
}
如果这不起作用,请在您的项目中搜索字符串“12.0.0”并添加到缺少的库上方的列表中
为了在我的 Ionic3 应用程序上成功构建,我必须做的事情:
- 添加插件cordova-android-play-services-gradle-release
- 移除并re-add android 平台
- 11.+ 在 platform/android/project.properties 文件中用于库(特别是如果您使用的是 firebase)
- 11.+ 用于 platforms/android/cordova-plugin-firebase/-build.gradle 中的依赖项
- 以上变化在platforms/android/build.gradle
这可能是让事情顺利进行的最糟糕的方法,但有点救了我的命。希望这对某人有所帮助!
对我来说,这是将版本号添加到 project.properies 文件中的 Google Play Services 的问题。
因此您需要更改如下内容:
android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:
cordova.system.library.3=com.google.android.gms:play-services-identity:
至:
android.library.reference.1=CordovaLib
cordova.system.library.2=com.google.android.gms:play-services-auth:11.
cordova.system.library.3=com.google.android.gms:play-services-identity:11.
就我而言
npm update
cordova platform remove android
cordova platform add android@6.4.0
并在 platform/android/projet.properties
中替换cordova.system.library.1=com.android.support:support-v4+
至
cordova.system.library.1=com.android.support:support-v4:26+
只需将 platform/android/project.properties 更改为
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.google.android.gms:play-services-auth:11.+
cordova.system.library.3=com.google.android.gms:play-services-identity:11.+
cordova.system.library.4=com.google.android.gms:play-services-location:11.+
这对我有用
对我有用。
node_modules/react-native-camera/android/build.gradle:
dependencies {
compile 'com.facebook.react:react-native:+'
compile 'com.google.android.gms:play-services-gcm:11.8.0' // update by me on
20180321
}
更新
此错误的原因已被确定为 v12.0.0 of the Google Play Services library 中的错误:
Known Issues with version 12.0.0 -license POM dependencies cause "more than one library with package name ‘com.google.android.gms.license'" issues in Ionic Pro.
错误已在 v12.0.1 of the Google Play Services library 中修复:
Restores unique package names for runtime linked -license artifacts which affected some build systems' (e.g. Ionic Pro) compatibility issues.
因此,通过 cordova-android-play-services-gradle-release 插件指定 Play Services Library v12.0.1 或更高版本可以解决问题,例如:
cordova plugin add cordova-android-play-services-gradle-release --variable PLAY_SERVICES_VERSION=12.+
在 build.gradle
中只有这个对我有用:
allprojects {
repositories {
...
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.google.android.gms') {
details.useVersion '11.8.0'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '11.8.0'
}
}
}
}
}
https://github.com/evollu/react-native-fcm/issues/857#issuecomment-375243825
1. 转到 project.properties(在您的平台文件夹中)
2. 我在 "project.properties" 中只使用了 google 分析,不得不在版本末尾添加“11.+”,并且这对我有用。不确定这是否是长期修复,但它起到了作用。
cordova.system.library.2=com.google.android.gms:play-services-analytics:11.+
我在我的 ionic 项目中遇到了同样的错误,经过少量搜索后,我阅读了有关升级 Android 平台的信息,这是最新的 Android Gradle 插件所必需的构建应用程序。
解决方法很简单只需按照下面提到的步骤即可。
- 删除现有的 Anroid 平台
ionic cordova platform remove android
添加最低版本 Android SDK 构建工具 26.0.2 通过 Android SDK 管理器使用最新的 Android Gradle 插件来构建应用
为 Android 平台添加最低版本
ionic cordova platform add android@^6.4.0
供参考,来自:https://developers.google.com/android/guides/releases
Google Android
的 API2018 年 3 月 20 日 - 版本 12.0.0
版本 12.0.0 的已知问题
- ...
- -license POM 依赖项导致 Ionic Pro 出现 "more than one library with package name ‘com.google.android.gms.license'" 问题。
- ...
我们将很快提供更新的 12.0.1 版本来解决这些问题。
我的解决方法
(基于 jeremy castelli's
我正在使用以下解决方法(我强调,这是一种解决方法)。
将以下内容添加到 build-extras 的底部。gradle,必要时创建文件。
configurations.all {
resolutionStrategy {
force 'com.google.firebase:firebase-core:11.8+',
'com.google.firebase:firebase-messaging:11.8+',
'com.google.firebase:firebase-crash:11.8+',
'com.google.firebase:firebase-config:11.8+',
'com.google.firebase:firebase-auth:11.8+',
'com.google.android.gms:play-services-tagmanager:11.8+',
'com.google.android.gms:play-services-location:11.8+'
}
}
包含所有 firebase 和所有 android.gms 库引用很重要,如果您只从这里遗漏了一个,它仍然无法构建。 Grep 您的 gradle 文件以获取所有参考资料。就我而言,我错过了在 firebase 插件文件夹的 .gradle 文件中引用的 firebase-auth。
resolutionStrategy force
所做的是覆盖 project/plugins 所做的版本选择并强制 gradle 引用特定版本。
使用此解决方法无需编辑 project.properties 或任何其他 gradle 文件。