Facebook-sdk-for-unity: 无法在 Unity 2019.3.0f6 中构建 - 与 Firebase SDK 冲突 - 重复依赖项

创建于 2020-02-03  ·  37评论  ·  资料来源: facebook/facebook-sdk-for-unity

清单

环境

  • Unity 编辑器版本: 2019.3.0f6
  • Unity SDK 版本: 7.18.07.18.1
  • 安装平台及版本: [Android]版本any
  • Firebase SDK 版本:6.10.0
  • Unity Jar 解析器版本:1.2.135

目标

构建项目

预期成绩

项目搭建成功

实际结果

项目无法使用以下输出构建:

CommandInvokationFailure: Gradle build failed. 
/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath "/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)

  Go to the documentation to learn how to Fix dependency resolution errors.

重现步骤

  1. 新建 unity 2019.3.0f6 项目
  2. 将项目构建目标设置为 Android。
  3. 导入 Facebook SDK 7.18.0
  4. 将最新的Firebase Analytics SDK 6.10.0导入到项目中。
  5. Unity Jar Resolver v1.2.135导入到项目中。
  6. 启用 mainTemplate.gradle(播放器设置 -> 发布设置 -> 检查自定义 gradle 模板)
  7. 点击 Assets/Play Services Resolver/Android Resolver/Resolve
  8. 出现提示时启用 Jetifier
  9. 构建项目

或者

  1. 下载并打开我制作的repro 项目
  2. 将构建目标更改为 Android
  3. 构建项目

代码示例和详细信息

如果我只使用 Facebook SDK 构建,它就可以工作。
如果我只使用 Firebase SDK 构建,它就可以工作。
如果我同时使用 Facebook SDK 和 Firebase SDK 构建,它就会失败。

我按照我之前提到的步骤做了一个 Repro 项目。
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing

最有用的评论

我为Unity 2019.3.11f1分两步解决了这个问题:

  1. 转到Edit -> Project Settings -> Player -> Publishing settings -> 勾选Custom Properties Gradle Template
  2. 转到新生成的gradleTemplate.properties并将这些行添加到顶部:
    ```属性
    android.useAndroidX=true
    android.enableJetifier=真

所有37条评论

@KylinChang ,有任何更新吗?

我们无法在 Unity 2019.3 上构建项目。
在 Android 上因为这个问题,在 iOS 上,因为 #359。

@mcrvaz ,你能试试v7.18.1吗?

Facebook SDK v7.18.1 也面临同样的问题。

Facebook SDK v7.18.1 面临同样的问题。 我们的游戏现在无法构建。 Firebase 或 Facebook 临时禁用。

@kashiftasneempro你是不是先删除了旧插件?

@kashiftasneempro你是不是先删除了旧插件?

是的,我做到了。

我遇到了同样的问题,有没有人在这方面取得任何进展? 似乎是 androidx 与支持库冲突?

实际上:我还没有完全测试这个,但是删除

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

从 build.gradle 让我再次构建 apk。 会做一些测试,看看是否有任何损坏。

更新 1:看起来事情在我这边正常运行,Facebook 仍然可以正常工作,而且我正在正确地进行 Firebase 推送令牌初始化。

更新 2:我忘了提到我还必须删除 Firebase AndroidManifest 文件中的一行,即 uses-sdk ... 14
删除这两行时,一切正常。 我已经能够测试与我的用例相关的所有内容。 希望这对其他人有帮助。

实际上:我还没有完全测试这个,但是删除

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

从 build.gradle 让我再次构建 apk。 会做一些测试,看看是否有任何损坏。

更新 1:看起来事情在我这边正常运行,Facebook 仍然可以正常工作,而且我正在正确地进行 Firebase 推送令牌初始化。

更新 2:我忘了提到我还必须删除 Firebase AndroidManifest 文件中的一行,即 uses-sdk ... 14
删除这两行时,一切正常。 我已经能够测试与我的用例相关的所有内容。 希望这对其他人有帮助。

你在 Unity 工作吗?

Unity 有 mainTemplate.gradle 而不是 build.gradle。

是的,这是 Unity,我没有从编辑器构建 apk/aab,而是导出到 Android Studio,这样我就可以处理依赖项。 在调试这样的事情时它有很大帮助。

@ncinoadam ,您使用的是哪些 Firebase 模块? 只是推送通知?

@ncinoadam @kashiftasneempro我设法通过启用 Jetifier 并像这样修改 mainTemplate.gradle 文件来解决这个问题:

dependencies {
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // Android Resolver Dependencies Start
    implementation 'androidx.appcompat:appcompat:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.cardview:cardview:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.cardview:cardview:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.browser:browser:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
...

@ncinoadam ,您使用的是哪些 Firebase 模块? 只是推送通知?

我目前只使用 Messaging 模块,但找出冲突并为其他人修复它们并不难。

该问题可以通过导出项目并使用 Android Studio 构建来解决,然后通过替换@hex提到的几乎旧的依赖项来使用 AndroidX 迁移。 但这不是它应该的方式,冲突现在仍然使用旧的依赖项,而在强制解析后启用 AndroidX,所以希望有一个可用的修复程序或官方的方式来构建而不导出项目。

实际上:我还没有完全测试这个,但是删除

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

从 build.gradle 让我再次构建 apk。 会做一些测试,看看是否有任何损坏。

更新 1:看起来事情在我这边正常运行,Facebook 仍然可以正常工作,而且我正在正确地进行 Firebase 推送令牌初始化。

更新 2:我忘了提到我还必须删除 Firebase AndroidManifest 文件中的一行,即 uses-sdk ... 14
删除这两行时,一切正常。 我已经能够测试与我的用例相关的所有内容。 希望这对其他人有帮助。

谢谢@ncinoadam ,这对我使用分析模块

我同意@GunLengend ,在 Android Studio 中处理文件是一种黑客行为,它应该在 Unity 内部处理,而无需每次构建时都导出

编辑:我还想提到这个问题与 Facebook SDK 无关,因为我的项目中没有它。 我在这里打开了一个问题(https://github.com/firebase/quickstart-unity/issues/607),因为我有几乎相同的 Unity 日志输出,并使用@ncinoadam提到的内容修复了该问题,所以这似乎更多一个 Firebase 的东西

我现在正在考虑的不仅仅是 Facebook 和 Firebase 的问题,它也可以属于 Unity 本身。 因为在 Unity mainTemplate.gradle 文件中启用了 enableJetifier 和 useAndroidX 但是当 Unity 开始构建过程时,Jetifier 没有完成它的工作,它应该迁移所有旧的依赖项以强制使用 AndroidX,但事实并非如此,Android Studio可以做到这一点。

我现在正在考虑的不仅仅是 Facebook 和 Firebase 的问题,它也可以属于 Unity 本身。 因为在 Unity mainTemplate.gradle 文件中启用了 enableJetifier 和 useAndroidX 但是当 Unity 开始构建过程时,Jetifier 没有完成它的工作,它应该迁移所有旧的依赖项以强制使用 AndroidX,但事实并非如此,Android Studio可以做到这一点。

升级到最新版本的 Unity、Facebook SDK、Firebase SDK 后,所有 Android 构建问题都消失了。 现在我正在 Xcode 中与 iOS 作斗争,但这与此 SDK 无关。

编辑:这可能是因为我以前启用了 Firebase Analytics,现在我没有。 当我第一次遇到这个问题时,我没有使用 Facebook SDK,这是 Mapbox SDK 的一个问题,似乎他们重新分发了 Java 库而不是更新到 Android 解析器。 我摆脱了 Mapbox 并开始使用谷歌地图,那里很好,但后来我引入了旧版本的 Facebook SDK,因为我的一个资产的文档要求旧版本,并且在引入它时我有多个重复的类。 所以我得到了新的 Facebook SDK,我不得不调整需要旧版本的资产中的代码。 目前我只使用 Firebase 身份验证,但它似乎仍在使用 androidx.core.core-1.0.0,这就是大多数重复类对我来说的地方。 希望这会有所帮助

将 FB 添加到我有 AdMob 的项目时,我遇到了同样的冲突

属性application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) 来自 [com.android. 支持:支持兼容:28.0.0] AndroidManifest。 xml:22 :18-91

添加建议后
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

我正进入(状态

java.lang.RuntimeException:在模块 classes.jar (androidx.browser:browser:1.0.0) 和 classes.jar (com.android.support:customtabs:28.0.0) 中发现重复的类 android.support.customtabs.ICustomTabsCallback

和更多 ...
我有所有 SDK 和 Unity 的最新版本。

我不知道你为什么给我一个大拇指,更何况我这样做之后还想帮助你,但我建议你删除 com.android. support:customtabs :28.0.0,通常存储在 Assets/Plugins/Android/ 中,看看是否能解决您的问题。

问题是我使用的是mainTemplate.gradle而不是 Assets/Plugins/Android/ 文件夹中的大量库。 (存储库中的空间有限)。
我确实从中删除了所有implementation 'com.android.support.XXXX'并且仍然有同样的问题。

你不赞成,因为你的解决方案不适合我,当管理员正在阅读像你这样的帖子时,他可以关闭这个问题,因为他会假设一切都已经完成,但事实并非如此。
我支持很多项目和解决方案,例如: Export to Android Studioremove library与在我的项目中不存在不是解决方案。

祝你好运

我现在正在考虑的不仅仅是 Facebook 和 Firebase 的问题,它也可以属于 Unity 本身。 因为在 Unity mainTemplate.gradle 文件中启用了 enableJetifier 和 useAndroidX 但是当 Unity 开始构建过程时,Jetifier 没有完成它的工作,它应该迁移所有旧的依赖项以强制使用 AndroidX,但事实并非如此,Android Studio可以做到这一点。

问题既是 Google/Unity 问题,也是 Facebook 问题。 Facebook 需要升级他们的 SDK 以使用 AndroidX,简单而简单,这个问题就消失了。 Google/Unity 开发了他们自己的 Jetifier 版本,它在 Unity 中运行以修补问题,直到像 Facebook 这样的公司修复它,但 Unity 的 Jetifier 不能与 Facebook SDK 一起使用!

幸运的是,Android Studio 的 Jetifier 运行良好……这实际上是使用 Facebook SDK 和任何其他使用 AndroidX 的库运行 Unity 游戏的唯一解决方案。

我遇到了同样的问题,并从 V7.16 切换到了 v7.19.2,这为我解决了这个问题。

@LunarInteractiveArts我试过 7.19.2 但它没有用,很遗憾。
但是,在此错误上发布了一个解决方案: https :

@doom-goober 我确实尝试过这个,但它不起作用或我。
代码看起来类似于 Google 依赖项解析器生成的代码:
image

看起来我在 OneSignal 帮助部分找到了修复程序。 修复适用于 Unity ofc。 https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-compatibility
image

我为Unity 2019.3.11f1分两步解决了这个问题:

  1. 转到Edit -> Project Settings -> Player -> Publishing settings -> 勾选Custom Properties Gradle Template
  2. 转到新生成的gradleTemplate.properties并将这些行添加到顶部:
    ```属性
    android.useAndroidX=true
    android.enableJetifier=真

在 Unity 2019.2.21 中,即使启用了如下所示的 jetfiier,重复的类错误仍然存​​在

([rootProject] + (rootProject.subprojects as List)).each {
分机{
it.setProperty("android.useAndroidX", true)
it.setProperty("android.enableJetifier", true)
}
}

@jackatfp您是否尝试过@gromilQaaaa的解决方案? 这是文档中使我的构建再次从 Unity 工作的部分的直接链接:
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-or-newer

这是您必须添加名为 Assets/Plugins/Android/settingsTemplate.gradle 的文件的部分。

这个问题让我无休止地沮丧,我正准备从 Android Studio 构建。 只有这个解决方案对我一直有效(我认为前一个有效,但当我将其他一些插件添加回我的项目时,它对我不起作用。)从逻辑上讲,它是有道理的:gradle 系统显然没有从Unity 的后处理器和设置,但很明显 jetifier 正在工作,因为它在使用 gradle 的 Android Studio 中工作。 因此,基于 gradle 的解决方案似乎很有意义。

无论如何它对我有用,我很生气也很高兴找到一个解决方案,我希望它对你有用。 请试一试! 祝你好运。

在那种情况下它没有拿起喷射器是对的,但是您不再需要使用 OneSignal 解决方案。

使用最新的 2019.3 官方版本(我的是 2019.3.12f1 atm)您可以在主 Gradle 模板之上使用自定义 Gradle 属性模板,并添加:
android.useAndroidX=true
android.enableJetifier=true
到新生成的 gradleTemplate.properties 文件。

我一直在导出到 Android Studio 以使用我的发布者想要的所有 SDK 进行构建,并从那时起解决了 Android 构建错误的痛苦,作为初级开发人员,我认为我遇到了所有问题,但现在我终于可以在 Unity 中进行构建了。 除了在 Android Studio 中,Jetifier 无法与 Facebook SDK 正常工作,因此如果您使用了足够多的 AndroidX 迁移插件,则很难在 Unity 中构建而不进行一些黑客更改。

我通常还必须更改 Plugins/Android/AndroidManifest.xml 以在应用程序标记中包含此内容:
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
清单标签中还有xmlns:tools="http://schemas.android.com/tools"

是的,它是一个随机字符串,因为我不确定它的目的是什么,但它可以工作并修复我的清单合并构建错误,哦,好吧。

我现在可以使用 Ironsource(许多适配器)、Facebook SDK、GameAnalytics、Adjust、Firebase 等进行构建。 基本上只需获取最新的 Unity Jar Resolver,检查设置,删除自动解析,删除构建时的解析,设置补丁主模板并使用 jetifier 为 true,强制解析,添加您想要的任何额外依赖项/存储库,执行 gradleproperties 技巧,在 Unity 中构建,完成.

@doom-goober 是的,我们尝试了所有方法,包括您提到的解决方案,但仍然无效

@doom-goober 是的,我们尝试了所有方法,包括您提到的解决方案,但仍然无效

您是否尝试过@ruslanmamonov选项?

这也发生在我身上。 我已经尝试了上述所有解决方案,但都没有成功。 Facebook SDK 正在注入与 androidX 冲突的旧依赖项,EDM4U 无法解决它们。

下面的例子:
implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:26.0.2' // Assets/Packages/XXX.CustomerSupport/Helpshift/Editor/HelpshiftDependencies.xml:9

Facebook 添加了 cardview,另一个本地插件也添加了它。 Jetifier 似乎什么都不做。
OneSignal 建议的修复程序也无法解决此问题。

是的,我已经使用我自己的 Facebook.Unity.Editor.dll 自定义版本,这样它就不会注入冲突的实现。
但是哇,构建 facebook SDK 并不容易……但最终还是成功了 :)

我正在努力解决同样的问题,但是重复的课程是不同的:

java.lang.RuntimeException: Duplicate class androidx.vectordrawable.graphics.drawable.Animatable2Compat found in modules classes.jar (:vectordrawable-animated-1.0.0:) and classes.jar (androidx.vectordrawable:vectordrawable-animated:1.1.0)

Facebook 似乎没有导入这个库。

我试过 jetifier 技巧,我试过创建 mainTemplate.gradle,包括旧库的 androidx 对应物,甚至包括 vectordrawable 库,但我仍然总是遇到同样的错误。

mainTemplate.gradle 看起来像这样:

// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each {
    ext {
        it.setProperty("android.useAndroidX", true)
        it.setProperty("android.enableJetifier", true)
    }
}
([rootProject] + (rootProject.subprojects as List)).each { project ->
    project.repositories {
        def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
        maven {
            url "https://maven.google.com"
        }
        maven {
            url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/AuthDependencies.xml:20, Assets/Firebase/Editor/MessagingDependencies.xml:20
        }
        mavenLocal()
        jcenter()
        mavenCentral()
    }
}
// Android Resolver Repos End
apply plugin: 'com.android.library'
**APPLY_PLUGINS**
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
    //implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:support-v4:27.1+' // Assets/Editor/VoxelBusters/NativePlugins/NPDependencies.xml:6

    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.browser:browser:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable-animated:1.0.0'

    implementation 'com.facebook.android:facebook-applinks:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
    implementation 'com.facebook.android:facebook-core:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
    implementation 'com.facebook.android:facebook-gamingservices:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
    implementation 'com.facebook.android:facebook-login:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
    implementation 'com.facebook.android:facebook-share:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
    implementation 'com.google.android.gms:play-services-base:17.4.0' // Assets/Firebase/Editor/AppDependencies.xml:17
    implementation 'com.google.firebase:firebase-analytics:17.5.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15
    implementation 'com.google.firebase:firebase-analytics-unity:6.16.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
    implementation 'com.google.firebase:firebase-app-unity:6.16.0' // Assets/Firebase/Editor/AppDependencies.xml:22
    implementation 'com.google.firebase:firebase-auth:19.3.2' // Assets/Firebase/Editor/AuthDependencies.xml:13
    implementation 'com.google.firebase:firebase-auth-unity:6.16.0' // Assets/Firebase/Editor/AuthDependencies.xml:20
    implementation 'com.google.firebase:firebase-common:19.3.1' // Assets/Firebase/Editor/AppDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging:20.2.4' // Assets/Firebase/Editor/MessagingDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging-unity:6.16.0' // Assets/Firebase/Editor/MessagingDependencies.xml:20
    implementation 'com.parse.bolts:bolts-android:1.4.0' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
// Android Resolver Dependencies End
**DEPS**}

// Android Resolver Exclusions Start
android {
  packagingOptions {
      exclude ('/lib/armeabi/*' + '*')
      exclude ('/lib/mips/*' + '*')
      exclude ('/lib/mips64/*' + '*')
      exclude ('/lib/x86/*' + '*')
      exclude ('/lib/x86_64/*' + '*')
  }
}
// Android Resolver Exclusions End
android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion **MINSDKVERSION**
        targetSdkVersion **TARGETSDKVERSION**
        ndk {
            abiFilters **ABIFILTERS**
        }
        versionCode **VERSIONCODE**
        versionName '**VERSIONNAME**'
        consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }**PACKAGING_OPTIONS**
}**REPOSITORIES****SOURCE_BUILD_SETUP**
**EXTERNAL_SOURCES**

其他想法可以做什么? 我基本上只是将 facebook sdk 添加到我的项目中,并且从一开始就遇到了这个错误。

我有最新的 jar 解析器、facebook sdk 和 firebase sdk。

我仍在使用我上面建议的相同方法(上帝保佑 gradle 属性)并且从未遇到过问题,唯一改变的是我停止使用 Unity 的 Android SDK 并自己下载它并优先更改它的路径,成为能够更和平地将目标设置为 api 30。 不过应该影响不大。 主要是让 EDM 设置在构建之前使用 jetifier、mainTemplate 补丁和强制解析(如果你不想像我一样自动解析)。 在发布设置中,我使用自定义 gradle 属性、主模板、自定义 android 清单(我不再真正接触主模板或 android 清单,我让它们由 edm 和 facebook 菜单编辑设置的“重新生成 android 清单”填充。如果你得到完成所有操作后出现重复的类错误,那么您的项目中可能有额外的错误,您应该删除。例如,如果使用 Adjust,您可能会解决安装引用程序,并且您的项目 Plugins 文件夹中还有另一个您应该删除的文件夹,但是,是的,大多数情况下,如果您使用这些设置,我建议所有这些问题都简单地......消失。

TL;DR:自定义 Gradle 属性模板,并添加:

android.useAndroidX=true
android.enableJetifier=true

自定义主模板,让 EDM4U 修补它,打开 Jetifier,在构建前强制解析
自定义主清单,让 Facebook 从它的菜单编辑设置中重新生成清单,还要确保那里没有错误,比如 PATH 或 Facebook 有的任何烦人的东西
我保证你可以像我每天一样使用一百万个 sdks 进行构建,我只是一个随机的初级游戏开发人员,他对这些东西进行了过多的研究并求助于 Android Studio,直到自定义 gradle 属性出现

好的,最后我发现了一个问题 - 我在文件中漂浮了 vectordrawable aar 文件 - 这导致了问题。 不确定哪个库复制了它,但我已经删除了这个文件并且所有错误都消失了。 无论如何,感谢您的提示:)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

andnoonesthere picture andnoonesthere  ·  25评论

iMagesBlues picture iMagesBlues  ·  16评论

daCelky picture daCelky  ·  21评论

IgorGalimski picture IgorGalimski  ·  23评论

MartinGonzalez picture MartinGonzalez  ·  29评论