在transformClassesWithDexBuilder上为Android客户端库编译new Places SDK失败

在transformClassesWithDexBuilder上为Android客户端库编译new Places SDK失败,android,gradle,google-places-api,Android,Gradle,Google Places Api,我正试图迁移到新的世界 我做了必要的代码更改,但是打包应用程序失败:app:transformClassesWithDexBuilderForDebug任务(参见下面的堆栈跟踪)。这个问题似乎出现在com.google.guava:guava-jdk5:17.0依赖项中,它是com.google.android.libraries.places:places:1.0.0的一部分 部分依赖关系树是: com.google.android.libraries.places:places:1.0.0

我正试图迁移到新的世界

我做了必要的代码更改,但是打包应用程序失败:app:transformClassesWithDexBuilderForDebug任务(参见下面的堆栈跟踪)。这个问题似乎出现在com.google.guava:guava-jdk5:17.0依赖项中,它是com.google.android.libraries.places:places:1.0.0的一部分 部分依赖关系树是:

com.google.android.libraries.places:places:1.0.0
|    ...
|    \--- com.google.guava:guava:23.5-android
...
+--- com.google.api-client:google-api-client-android:1.23.0
|    +--- com.google.api-client:google-api-client:1.23.0
|    |    ...
|    |    \--- com.google.guava:guava-jdk5:17.0
因此,新的PlacesSDK客户端库两次包含Guava,还包括非Android版本,这会导致编译错误。我认识到该描述看起来像一个bug描述,但相关bug追踪器的链接也不起作用:(


我在迁移到新的PlacesSDK时遇到了完全相同的问题,我通过排除
com.google.guava:guava-jdk5
依赖关系解决了这个问题

implementation ('com.google.android.libraries.places:places:1.0.0') {
    exclude group: 'com.google.guava', module: 'guava-jdk5'
}
如果您有另一个依赖于guava的依赖项,您可能需要排除整个组,而不仅仅是
guava-jdk5
模块

implementation ('com.google.android.libraries.places:places:1.0.0') {
    exclude group: 'com.google.guava'
}
排除番石榴(第二种选择)对我来说很有效
implementation ('com.google.android.libraries.places:places:1.0.0') {
    exclude group: 'com.google.guava'
}