错误:包含名称为com.google.android.gms.license的多个库

And*_*aha 26 android google-play-services ionic3

当我尝试将命令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
}
Run Code Online (Sandbox Code Playgroud)

rpb*_*zar 16

我最近遇到过这个问题而且我遇到的问题是,由于某些原因,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.+
Run Code Online (Sandbox Code Playgroud)

这使得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.+
Run Code Online (Sandbox Code Playgroud)


jer*_*lli 13

在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'
   }
}
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请在项目中搜索字符串'12 .0.0'并在缺少的库上方的列表中添加


小智 6

发生这种情况是因为Play服务12.0.0.我继续将依赖项降级到11.8.0(我项目的最后一个已知工作版本).我正在使用本地反应.我有2个依赖项,它们吸引了12.0.0的google play服务 - com.google.android:play-services...12.0.0希望这会有所帮助.


小智 6

我必须做的事情才能让我的Ionic3应用程序上的构建成功:

  • 添加插件cordova-android-play-services-gradle-release
  • 删除并重新添加android平台
  • 11.用于库的platform/android/project.properties文件中的+(特别是如果你使用的是firebase)
  • 11. + for platforms/android/cordova-plugin-firebase/-build.gradle中的依赖项
  • 平台/ android/build.gradle中的上述更改

这可能是让事情发挥作用的最糟糕的方式,但有点救了我的命.希望这有助于某人!


小智 5

也许它与新发布的Google Play服务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'
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

依赖集是来自你的 android/app/build.gradle