首页 > 解决方案 > Firebase 升级后 Unity Cloud Build 中出现 100 个重复类构建错误

问题描述

我们有一个 Unity 项目 (Unity 2019.2.15f1),我们在其中使用多个 Firebase 插件:云存储、消息传递和远程配置

我们最近将 Firebase Unity 插件从 v6.7.0 更新到 v6.15.2 本地构建通过甚至可以在 Android 手机上运行。

但是,它在 Unity Cloud Build 中引发了 100 多个重复的类构建错误。我们对此问题一无所知,并且正在努力寻找解决方案。请从 Unity Cloud Build 中找到附加的构建日志。有没有人面临同样的问题?请帮我修复它。

97: [Unity] ERROR:   Duplicate class com.google.android.gms.internal.measurement.zzw found in modules classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.4:)
998: [Unity] ERROR:   Duplicate class com.google.android.gms.internal.measurement.zzx found in modules classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.4:)
999: [Unity] ERROR:   Duplicate class com.google.android.gms.internal.measurement.zzy found in modules classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.4:)
1000: [Unity] ERROR:   Duplicate class com.google.android.gms.internal.measurement.zzz found in modules classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-base-17.4.4:)
1001: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1002: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$ConditionalUserProperty found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1003: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$Event found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1004: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$EventInterceptor found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1005: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$OnEventListener found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1006: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$Param found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1007: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurement$UserProperty found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1008: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurementContentProvider found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1009: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1010: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurementJobService found in modules classes.jar (:com.google.android.gms.play-services-measurement-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-17.4.4:)
1011: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurementReceiver found in modules classes.jar (:com.google.android.gms.play-services-measurement-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-17.4.4:)
1012: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.AppMeasurementService found in modules classes.jar (:com.google.android.gms.play-services-measurement-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-17.4.4:)
1013: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.api.AppMeasurementSdk found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.4:)
1014: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.api.AppMeasurementSdk$ConditionalUserProperty found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.4:)
1015: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.api.AppMeasurementSdk$EventInterceptor found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.4:)
1016: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.api.AppMeasurementSdk$OnEventListener found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-api-17.4.4:)
1017: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.AppMeasurementDynamiteService found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.4:)
1018: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.AppMeasurementDynamiteService$zza found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.4:)
1019: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.AppMeasurementDynamiteService$zzb found in modules classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-sdk-17.4.4:)
1020: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.zza found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1021: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.zzaa found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1022: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.zzab found in modules classes.jar (:com.google.android.gms.play-services-measurement-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)

1323: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.internal.zzz found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1324: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.module.Analytics found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1325: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.module.Analytics$Event found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1326: [Unity] ERROR:   Duplicate class com.google.android.gms.measurement.module.Analytics$Param found in modules classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-impl-17.4.4:)
1327: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.FirebaseAnalytics found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1328: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.FirebaseAnalytics$Event found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1329: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.FirebaseAnalytics$Param found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1330: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.FirebaseAnalytics$UserProperty found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1331: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.connector.AnalyticsConnectorImpl found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1332: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.connector.AnalyticsConnectorImpl$1 found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1333: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)
1334: [Unity] ERROR:   Duplicate class com.google.firebase.analytics.connector.internal.zza found in modules classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.2:) and classes.jar (:com.google.android.gms.play-services-measurement-api-17.4.4:)

1345: [Unity] ERROR:   Duplicate class com.google.protobuf.AbstractMessageLite found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1346: [Unity] ERROR:   Duplicate class com.google.protobuf.AbstractMessageLite$Builder found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1347: [Unity] ERROR:   Duplicate class com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1348: [Unity] ERROR:   Duplicate class com.google.protobuf.AbstractParser found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1349: [Unity] ERROR:   Duplicate class com.google.protobuf.AbstractProtobufList found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1350: [Unity] ERROR:   Duplicate class com.google.protobuf.BooleanArrayList found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)
1351: [Unity] ERROR:   Duplicate class com.google.protobuf.ByteBufferWriter found in modules com.google.protobuf.protobuf-javalite-3.11.0.jar (com.google.protobuf.protobuf-javalite-3.11.0.jar) and com.google.protobuf.protobuf-lite-3.0.1.jar (com.google.protobuf.protobuf-lite-3.0.1.jar)


标签: firebaseunity3dfirebase-cloud-messagingfirebase-storageunity3d-cloud-build

解决方案


首先,也许旧文件仍然存在。你能尝试做一个干净的构建吗?

来自“为什么我的构建在 Unity Cloud Build 中失败,但在本地构建良好?”

尝试从仪表板进行干净的构建(见下文)。

来自统一支持的干净构建 ui

如果这不能解决问题,那么问题似乎与解决依赖关系有关(Firebase 使用一个名为“Unity 的扩展依赖管理器”或“EDM4U”的工具来帮助解决这个问题)。

如果您使用的是普通包解析(即:您jar在 下看到很多 s Assets/Plugins/Android/),您可以尝试生成一个mainTemplate.gradle. EDM4U 将删除它管理的所有库文件Assets/Plugins/android/,并将它们作为依赖项添加到您的 gradle 文件中。然后应该通过正常的 gradle 过程来完成构建。

对于这种情况,即传统的依赖管理,您可能还需要检查这些文件是否包含在源代码管理中。如果不是,您可以尝试添加它们。如果是,您可以尝试排除它们。此外,如果您已提交旧库,更新它们可能会有所帮助。

反之亦然:如果您已经在使用该mainTemplate.gradle文件,请尝试将其删除并退回到旧式的依赖管理。这可能会解决问题。

您可以尝试做的最后一件事:删除ExternalDependencyManager下面的文件夹Assets/或转到 显示菜单树的屏幕截图

如果您愿意,这将是一个很好的问题转移到Unity 问题。Unity Cloud Build 目前还没有做太多的工作,它可以更容易地建立一个来回调试。


推荐阅读