Facebook-sdk-for-unity: Невозможность сборки в Unity 2019.3.0f6 - конфликт с Firebase SDK - повторяющиеся зависимости

Созданный на 3 февр. 2020  ·  37Комментарии  ·  Источник: facebook/facebook-sdk-for-unity

Контрольный список

Среда

  • Версия редактора Unity: 2019.3.0f6
  • Версия Unity SDK: 7.18.0 и 7.18.1
  • Платформа и версия установки: [Android] version any
  • Версия Firebase SDK: 6.10.0
  • Версия Unity Jar Resolver: 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. Загрузите и откройте созданный мной репро-проект .
  2. Измените цель сборки на Android
  3. Построить проект

Примеры кода и подробности

Если я использую только SDK для Facebook, он работает.
Если я собираю только 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 = правда
    android.enableJetifier = true

Все 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 все еще работает, и я правильно получаю инициализацию push-токена Firebase.

Обновление 2: я забыл упомянуть, что мне также нужно удалить строку в файле Firebase AndroidManifest, которая использует-sdk ... 14
При удалении этих двух строк все работает отлично. я смог протестировать все, что связано с моими вариантами использования. Надеюсь, это поможет другим.

На самом деле: я еще не тестировал это полностью, но удаление

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

Из build.gradle я снова строю apk. Я собираюсь провести несколько тестов, чтобы увидеть, не сломано ли что-нибудь.

Обновление 1. Похоже, что с моей стороны все работает, Facebook все еще работает, и я правильно получаю инициализацию push-токена Firebase.

Обновление 2: я забыл упомянуть, что мне также нужно удалить строку в файле Firebase AndroidManifest, которая использует-sdk ... 14
При удалении этих двух строк все работает отлично. я смог протестировать все, что связано с моими вариантами использования. Надеюсь, это поможет другим.

Вы работаете в Unity?

В Unity есть mainTemplate.gradle, а не build.gradle.

Да, это Unity, вместо того, чтобы создавать apk / aab из редактора, я экспортирую в Android Studio, чтобы работать с зависимостями. Это очень помогает при отладке подобных вещей.

Привет, @ncinoadam , какие модули Firebase вы используете? Просто push-уведомления?

@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 вы используете? Просто push-уведомления?

В настоящее время я просто использую модуль обмена сообщениями, но было бы несложно выяснить конфликты и исправить их и для других.

Проблема может быть решена путем экспорта проекта и сборки с помощью Android Studio, а затем перехода на AndroidX путем замены почти старых зависимостей после упомянутого @hex . Но это не так, как должно быть, конфликты теперь происходят вокруг пакета, все еще использующего старые зависимости, в то время как AndroidX включен после принудительного разрешения, поэтому надеюсь, что есть исправление или официальный способ сборки без экспорта проекта.

На самом деле: я еще не тестировал это полностью, но удаление

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

Из build.gradle я снова строю apk. Я собираюсь провести несколько тестов, чтобы увидеть, не сломано ли что-нибудь.

Обновление 1. Похоже, что с моей стороны все работает, Facebook все еще работает, и я правильно получаю инициализацию push-токена Firebase.

Обновление 2: я забыл упомянуть, что мне также нужно удалить строку в файле Firebase AndroidManifest, которая использует-sdk ... 14
При удалении этих двух строк все работает отлично. я смог протестировать все, что связано с моими вариантами использования. Надеюсь, это поможет другим.

Спасибо @ncinoadam , у меня это сработало с использованием модуля аналитики.

Я согласен с @GunLengend , это

РЕДАКТИРОВАТЬ: Я также хочу упомянуть, что эта проблема не имела ничего общего с SDK Facebook, поскольку у меня его нет в моем проекте. Я открыл здесь проблему (https://github.com/firebase/quickstart-unity/issues/607), потому что у меня был почти такой же вывод журналов Unity и исправлена ​​проблема с тем, о чем упоминал

То, что я сейчас рассматриваю, касается не только Facebook и Firebase, но и самой Unity. Поскольку enableJetifier и useAndroidX были включены в файле Unity mainTemplate.gradle, но когда Unity запускает процесс сборки, Jetifier не выполняет свою работу, он должен перенести все старые зависимости, чтобы принудительно использовать AndroidX, но это не так, и Android Studio может сделать этот трюк.

То, что я сейчас рассматриваю, касается не только Facebook и Firebase, но и самой Unity. Поскольку enableJetifier и useAndroidX были включены в файле Unity mainTemplate.gradle, но когда Unity запускает процесс сборки, Jetifier не выполняет свою работу, он должен перенести все старые зависимости, чтобы принудительно использовать AndroidX, но это не так, и Android Studio может сделать этот трюк.

После обновления до последней версии Unity, Facebook SDK, Firebase SDK все проблемы со сборкой Android исчезли. Сейчас я борюсь с iOS в Xcode, но это не связано с этим SDK.

РЕДАКТИРОВАТЬ: это могло быть потому, что раньше у меня была включена Firebase Analytics, а теперь нет. Я не использовал Facebook SDK, когда впервые столкнулся с проблемой, это была проблема с Mapbox SDK, который, похоже, перераспределяет библиотеки java вместо обновления до преобразователя Android. Я избавился от Mapbox и начал использовать карты Google, так хорошо там, но затем я представил более старую версию 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: дубликат класса android.support.customtabs.ICustomTabsCallback обнаружен в модулях classes.jar (androidx.browser: browser: 1.0.0) и classes.jar (com.android.support:customtabs:28.0.0)

И больше ...
У меня новейшие версии всех 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 Studio или remove library не существующее в моем проекте, не является решением.

Удачи бутон

То, что я сейчас рассматриваю, касается не только Facebook и Firebase, но и самой Unity. Поскольку enableJetifier и useAndroidX были включены в файле Unity mainTemplate.gradle, но когда Unity запускает процесс сборки, Jetifier не выполняет свою работу, он должен перенести все старые зависимости, чтобы принудительно использовать AndroidX, но это не так, и Android Studio может сделать этот трюк.

Проблема связана как с проблемой Google / Unity, так и с проблемой Facebook. Facebook необходимо обновить свой SDK, чтобы использовать AndroidX в чистом виде, и эта проблема исчезнет. Google / Unity разработали собственную версию Jetifier, которая работает в Unity, чтобы исправить проблему, пока такие компании, как Facebook, не исправят ее, но Jetifier Unity не работает с Facebook SDK!

К счастью, Jetifier от Android Studio работает нормально ... и это буквально единственное решение для запуска игры Unity с Facebook SDK и любой другой библиотекой, использующей AndroidX.

У меня была такая же проблема, и я переключился на v7.19.2 с V7.16, которая устранила проблему для меня.

@LunarInteractiveArts Я пробовал версию 7.19.2, но, к сожалению, она не сработала.
Однако есть решение по этой ошибке: https://github.com/googlesamples/unity-jar-resolver/issues/360, которое действительно работает!

@ doom-goober Я пробовал это, но это не сработало, ни я.
Код похож на тот, который генерирует преобразователь зависимостей Google:
image

Похоже, я нашел исправление в разделе справки OneSignal. Исправление для Unity ofc. https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-совместимость
image

Я решил это в два этапа для Unity 2019.3.11f1 :

  1. Перейдите к Edit -> Project Settings -> Player -> Publishing settings -> Отметьте Custom Properties Gradle Template
  2. Перейдите к только что сгенерированному gradleTemplate.properties и добавьте эти строки вверху:
    свойства
    android.useAndroidX = правда
    android.enableJetifier = true

В Unity 2019.2.21 ошибки повторяющихся классов все еще существуют даже при включенном jetfiier, как показано ниже.

([rootProject] + (rootProject.subprojects as List)). каждый {
ext {
it.setProperty ("android.useAndroidX", истина)
it.setProperty ("android.enableJetifier", истина)
}
}

@jackatfp Вы пробовали решение @gromilQaaaa ? Вот прямая ссылка на раздел документа, в котором моя сборка снова заработала в Unity:
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-или новее

Это раздел, в который вам нужно добавить файл Assets / Plugins / Android / settingsTemplate.gradle.

Эта проблема меня безмерно расстроила, и я собирался начать сборку из Android Studio. Только это решение стабильно работало для меня (я думал, что предыдущее сработало, но оно перестало работать для меня, когда я добавил некоторые другие плагины обратно в свой проект). И логически это имело некоторый смысл: система градиентов явно не собирала джетифер из Постпроцессор и настройки Unity, но очевидно, что jetifier работал, потому что он работал в Android Studio, которая использует gradle. Итак, решение, основанное на gradle, кажется разумным.

В любом случае это сработало для меня, и я был так раздражен и рад найти решение, надеюсь, оно сработает для вас. Пожалуйста, попробуйте! Удачи.

Вы правы, что в этом случае он не забирал jetifier, но вам больше не нужно использовать решение OneSignal.

Используя новейшую официальную версию 2019.3 (моя - 2019.3.12f1 atm), вы можете просто использовать настраиваемый шаблон свойств Gradle поверх основного шаблона Gradle и добавить:
android.useAndroidX=true
android.enableJetifier=true
во вновь созданный файл gradleTemplate.properties.

Я экспортирую в студию Android для сборки со всеми SDK, которые хочет мой издатель, и с тех пор борюсь с невзгодами ошибок сборки Android, как младший разработчик, я думаю, что столкнулся со всеми проблемами, но теперь я наконец могу создавать из Unity. Jetifier не работал с Facebook SDK должным образом, за исключением студии Android, поэтому, если вы использовали достаточное количество перенесенных плагинов 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, проверьте настройки, удалите автоматическое разрешение, удалите разрешение при сборке, установите патч maintemplate и используйте 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 и еще один локальный плагин. Джетифье, похоже, ничего не делает.
Исправление, предложенное OneSignal, также не решает эту проблему.

Да, я прибег к созданию собственной версии Facebook.Unity.Editor.dll, чтобы она не вводила конфликтующие реализации.
Но ничего себе, создать SDK для facebook было непросто ... но в итоге все получилось :)

Я борюсь с той же проблемой, но дублированный класс отличается:

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), и с тех пор у меня никогда не было проблем, изменилось только то, что я перестал использовать Android SDK Unity и сам загрузил его и изменил путь к нему в предпочтении, чтобы возможность установить цель на api 30 немного более мирно. Однако это не должно сильно повлиять. Главное, чтобы настройки EDM использовали jetifier, исправление mainTemplate и принудительное разрешение перед сборкой (если вы предпочитаете не использовать автоматическое разрешение, как я). В настройках публикации я использую настраиваемые свойства gradle, основной шаблон, настраиваемый манифест android (я больше не касаюсь основного шаблона или манифеста android, я позволяю им заполняться с помощью edm и параметров редактирования меню facebook «регенерировать манифест Android». Если вы получите повторяющаяся ошибка класса со всем, что было сделано, то у вас, вероятно, есть лишние в вашем проекте, которые вы должны удалить. Если, например, вы используете Adjust, вы можете разрешить установку реферера и все еще иметь еще один в папке плагинов вашего проекта, который вы должны удалить, но да, в большинстве случаев, если вы используете настройки, я предлагал все эти проблемы просто ... исчезнуть.

TL; DR: настраиваемый шаблон свойств Gradle и добавьте:

android.useAndroidX=true
android.enableJetifier=true

Пользовательский основной шаблон, пусть EDM4U исправит его, Jetifier включен, принудительное разрешение перед сборкой
Пользовательский главный манифест, позвольте Facebook регенерировать манифест из своего меню Edit Settings, также убедитесь, что там нет ошибок, таких как PATH или что-то еще, что раздражает facebook
Я обещаю вам, что вы можете создавать с миллионом SDK, как я делаю ежедневно, и я просто случайный младший разработчик игр, который слишком много прошел через этот материал и прибегал к Android Studio, пока не появились настраиваемые свойства gradle

Итак, наконец, я обнаружил проблему - у меня был файл aar с векторной графикой, плавающий в файлах - это было причиной проблемы. Не уверен, какая библиотека его скопировала, но я удалил этот файл, и все ошибки исчезли. В любом случае спасибо за подсказки :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги