【问题标题】:100s of Duplicate class Build errors in Unity Cloud Build after Firebase upgradeFirebase 升级后 Unity Cloud Build 中出现 100 个重复类构建错误
【发布时间】:2021-01-15 09:15:37
【问题描述】:

我们有一个 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)


【问题讨论】:

    标签: firebase unity3d firebase-cloud-messaging firebase-storage unity3d-cloud-build


    【解决方案1】:

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

    来自"Why is my build failing in Unity Cloud Build but building fine locally?"

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

    如果这不能解决问题,则问题似乎与解决依赖关系有关(Firebase 使用名为 "Extended Dependency Manager for Unity" or "EDM4U" 的工具来帮助解决此问题)。

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

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

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

    您可以尝试做的最后一件事:删除Assets/ 下的ExternalDependencyManager 文件夹或转到

    如果您愿意,这将是一个很好的转移到Unity issues 的问题。目前使用 Unity Cloud Build 完成的工作并不多,它可以更轻松地建立来回调试。

    【讨论】:

      【解决方案2】:

      将 Firebase Analytics 和 AdMob 添加到我的 Unity 应用时,我遇到了同样的问题。

      我做了这些步骤来解决这个问题:

      1. 将 android SDK、NDK 和工具更新到必要的版本
      2. 添加外部依赖管理器(android jar 解析器)
      3. 选择资产 -> 外部依赖管理器 -> Android 解析器 -> 解析
      4. 尝试构建应用并查看错误(如您的错误)
      5. 转到文件资源管理器并找到项目文件夹
      6. 搜索冲突文件(在项目文件夹中)

      例如:

      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:)
      

      搜索 * com.google.android.gms.play-services-measurement-base- *(* 在开头和结尾向 Explorer 的搜索表明可以有任何符号)并从结果中删除所有版本较低的文件(17.4.2)

      1. 再次尝试构建应用程序
      2. 如果在您的示例中出现一些添加错误,请转到第 5 步
      3. 完成

      这对我有用,但我不确定它是否对你有用,但你可以试试。

      祝你好运

      【讨论】:

        猜你喜欢
        • 2020-01-14
        • 1970-01-01
        • 2019-05-04
        • 1970-01-01
        • 1970-01-01
        • 2017-07-19
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        相关资源
        最近更新 更多