Facebook-sdk-for-unity: Échec de la compilation dans Unity 2019.3.0f6 - Conflit avec le SDK Firebase - Dépendances en double

Créé le 3 févr. 2020  ·  37Commentaires  ·  Source: facebook/facebook-sdk-for-unity

Liste de contrôle

Environnement

  • Version de l'éditeur Unity : 2019.3.0f6
  • Version du SDK Unity : 7.18.0 et 7.18.1
  • Plateforme et version d'installation : [Android] version any
  • Version du SDK Firebase : 6.10.0
  • Version du résolveur Unity Jar : 1.2.135

Buts

Construire le projet

Résultats attendus

Le projet est construit avec succès

Résultats actuels

Le projet ne parvient pas à générer avec la sortie suivante :

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.

Étapes pour reproduire

  1. Créer un nouveau projet unity 2019.3.0f6
  2. Définissez la cible de génération du projet sur Android.
  3. Importer le SDK Facebook 7.18.0
  4. Importez le dernier SDK Firebase Analytics 6.10.0 dans le projet.
  5. Importez Unity Jar Resolver v1.2.135 dans le projet.
  6. Activer mainTemplate.gradle (Paramètres du lecteur -> paramètres de publication -> vérifier le modèle de gradle personnalisé)
  7. Cliquez sur Assets/Play Services Resolver/Android Resolver/Resolve
  8. Activer Jetifier lorsque vous y êtes invité
  9. Construire le projet

OU ALORS

  1. Téléchargez et ouvrez le projet de reproduction que j'ai créé.
  2. Changer la cible de build en Android
  3. Construire le projet

Exemples de code et détails

Si je construis uniquement avec le SDK Facebook, cela fonctionne.
Si je construis uniquement avec le SDK Firebase, cela fonctionne.
Si je construis à la fois avec le SDK Facebook et le SDK Firebase, cela échoue.

J'ai fait un projet Repro en suivant les étapes que j'ai mentionnées précédemment.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing

bug

Commentaire le plus utile

Je l'ai résolu en deux étapes pour Unity 2019.3.11f1 :

  1. Allez à Edit -> Project Settings -> Player -> Publishing settings ->Cochez Custom Properties Gradle Template
  2. Accédez au nouveau gradleTemplate.properties et ajoutez ces lignes en haut :
    ``` propriétés
    android.useAndroidX=true
    android.enableJetifier=true

Tous les 37 commentaires

Salut @KylinChang , y a-t-il des mises à jour à ce sujet ?

Nous ne sommes pas en mesure de construire le projet sur Unity 2019.3.
Sur Android à cause de ce problème, et sur iOS, à cause de #359.

Salut @mcrvaz , peux-tu essayer la v7.18.1 ?

Face au même problème avec Facebook SDK v7.18.1 également.

Face au même problème avec Facebook SDK v7.18.1. Notre jeu ne peut pas être construit pour le moment. Firebase ou Facebook désactiver temporairement.

@kashiftasneempro avez-vous d'abord supprimé l'ancien plugin ?

@kashiftasneempro avez-vous d'abord supprimé l'ancien plugin ?

Oui je l'ai fait.

Je rencontre le même problème, est-ce que quelqu'un a avancé sur ce point ? Cela ressemble à un conflit entre la bibliothèque de support Androidx et la bibliothèque de support ?

En fait : je n'ai pas encore testé cela complètement, mais en supprimant

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

À partir de build.gradle, je reconstruis à nouveau des apk. Je vais faire des tests pour voir si quelque chose est cassé.

Mise à jour 1 : il semble que les choses fonctionnent de mon côté, Facebook fonctionne toujours et j'obtiens correctement l'initialisation du jeton push Firebase.

Mise à jour 2: j'ai oublié de mentionner que je dois également supprimer une ligne dans le fichier Firebase AndroidManifest celle qui utilise-sdk ... 14
Lors de la suppression de ces deux lignes, tout fonctionne très bien. J'ai pu tester tout ce qui concerne mes cas d'utilisation. Espérons que cela aide les autres.

En fait : je n'ai pas encore testé cela complètement, mais en supprimant

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

À partir de build.gradle, je reconstruis à nouveau des apk. Je vais faire des tests pour voir si quelque chose est cassé.

Mise à jour 1 : il semble que les choses fonctionnent de mon côté, Facebook fonctionne toujours et j'obtiens correctement l'initialisation du jeton push Firebase.

Mise à jour 2: j'ai oublié de mentionner que je dois également supprimer une ligne dans le fichier Firebase AndroidManifest celle qui utilise-sdk ... 14
Lors de la suppression de ces deux lignes, tout fonctionne très bien. J'ai pu tester tout ce qui concerne mes cas d'utilisation. Espérons que cela aide les autres.

Travaillez-vous dans Unity ?

Unity a mainTemplate.gradle et non build.gradle.

Oui, c'est Unity, au lieu de créer l'apk/aab à partir de l'éditeur, j'exporte vers Android Studio pour pouvoir travailler sur les dépendances. Cela aide beaucoup lors du débogage de choses comme celle-ci.

Salut @ncinoadam , quels modules Firebase utilisez-vous ? Juste des notifications push ?

@ncinoadam @kashiftasneempro J'ai réussi à résoudre ce problème en activant Jetifier et en modifiant le fichier mainTemplate.gradle comme ceci :

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
...

Salut @ncinoadam , quels modules Firebase utilisez-vous ? Juste des notifications push ?

Je n'utilise actuellement que le module de messagerie, mais il ne serait pas difficile de comprendre les conflits et de les résoudre également pour les autres.

Le problème peut être résolu en exportant le projet et en construisant avec Android Studio, puis en migrant avec AndroidX en remplaçant les dépendances presque anciennes après @hex mentionné. Mais ce n'est pas censé être comme ça, les conflits circulent maintenant autour du paquet utilisant toujours d'anciennes dépendances alors qu'AndroidX est activé après Force Resolve, alors espérons qu'il existe un correctif disponible ou un moyen officiel de construire sans exporter le projet.

En fait : je n'ai pas encore testé cela complètement, mais en supprimant

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

À partir de build.gradle, je reconstruis à nouveau des apk. Je vais faire des tests pour voir si quelque chose est cassé.

Mise à jour 1 : il semble que les choses fonctionnent de mon côté, Facebook fonctionne toujours et j'obtiens correctement l'initialisation du jeton push Firebase.

Mise à jour 2: j'ai oublié de mentionner que je dois également supprimer une ligne dans le fichier Firebase AndroidManifest celle qui utilise-sdk ... 14
Lors de la suppression de ces deux lignes, tout fonctionne très bien. J'ai pu tester tout ce qui concerne mes cas d'utilisation. Espérons que cela aide les autres.

Merci @ncinoadam , cela a fonctionné pour moi en utilisant le module d'analyse.

Je suis d'accord avec @GunLengend , c'est un hack d'avoir à jouer avec des fichiers dans Android Studio et il devrait être géré dans Unity sans avoir besoin d'exporter chaque fois que vous voulez construire

EDIT : Je tiens également à mentionner que ce problème n'avait rien à voir avec le SDK Facebook car je ne l'ai pas dans mon projet. J'ai ouvert un problème ici (https://github.com/firebase/quickstart-unity/issues/607) car j'avais à peu près la même sortie de journaux Unity et j'ai résolu le problème avec ce que @ncinoadam a mentionné, donc cela semble être plus d'une chose Firebase

Ce que j'envisage en ce moment, ce n'est pas seulement le problème de Facebook et Firebase, mais cela peut aussi appartenir à Unity lui-même. Parce que enableJetifier et useAndroidX ont été activés dans le fichier Unity mainTemplate.gradle, mais lorsque Unity démarre le processus de génération, le Jetifier ne fait pas son travail, il devrait migrer toutes les anciennes dépendances pour forcer l'utilisation d'AndroidX, mais ce n'est pas le cas, et Android Studio peut faire ce tour.

Ce que j'envisage en ce moment, ce n'est pas seulement le problème de Facebook et Firebase, mais cela peut aussi appartenir à Unity lui-même. Parce que enableJetifier et useAndroidX ont été activés dans le fichier Unity mainTemplate.gradle, mais lorsque Unity démarre le processus de génération, le Jetifier ne fait pas son travail, il devrait migrer toutes les anciennes dépendances pour forcer l'utilisation d'AndroidX, mais ce n'est pas le cas, et Android Studio peut faire ce tour.

Après la mise à niveau vers la dernière version d'Unity, Facebook SDK, Firebase SDK, tous les problèmes de build Android ont disparu. Maintenant, je me bats avec iOS dans Xcode, mais ce n'est pas lié à ce SDK.

EDIT : Cela pourrait être dû au fait que Firebase Analytics était activé auparavant et que je ne le fais plus. Je n'utilisais pas le SDK Facebook lorsque j'ai eu le problème pour la première fois, c'était un problème avec le SDK Mapbox qui et il semble qu'ils redistribuent les bibliothèques Java au lieu de mettre à jour vers le résolveur Android. Je me suis débarrassé de Mapbox et j'ai commencé à utiliser Google maps, tout va bien, mais j'ai ensuite introduit une ancienne version du SDK Facebook car la documentation de l'un de mes actifs demande l'ancienne version et j'avais plusieurs classes en double lors de son introduction. J'ai donc obtenu le nouveau SDK Facebook et j'ai dû ajuster le code dans l'asset qui nécessitait l'ancienne version. Actuellement, l'authentification Firebase fonctionne, mais il semble toujours utiliser androidx.core.core-1.0.0 et c'est là que se trouvaient la plupart des classes en double pour moi. Espérons que cela aide

J'ai le même conflit lors de l'ajout de FB à mon projet où j'ai AdMob

Attribut application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) de [com.android. support:support-compat :28.0.0] AndroidManifest. xml:22 :18-91

Après avoir ajouté suggéré
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

Je reçois

java.lang.RuntimeException : classe en double android.support.customtabs.ICustomTabsCallback trouvée dans les modules classes.jar (androidx.browser:browser:1.0.0) et classes.jar (com.android.support:customtabs:28.0.0)

Et plus ...
J'ai les dernières versions de tous les SDK et Unity.

Je ne sais pas pourquoi vous m'avez donné un coup de pouce et pourquoi je veux vous aider après l'avoir fait, mais je vous suggère de supprimer le com.android. support:customtabs :28.0.0, généralement stocké dans Assets/Plugins/Android/ et voyez si cela résout votre problème.

Le problème est que j'utilise mainTemplate.gradle au lieu d'avoir des tonnes de bibliothèques dans le dossier Assets/Plugins/Android/. (avoir un espace limité dans le référentiel).
J'ai supprimé tous les implementation 'com.android.support.XXXX' et j'ai toujours le même problème.

Vous avez le pouce vers le bas parce que votre solution n'est pas pour moi, lorsque l'administrateur lit un message comme le vôtre, il peut fermer ce problème car il supposera que tout est fait, alors que ce n'est PAS le cas.
Je soutiens beaucoup de projets et de solutions comme : Export to Android Studio ou remove library avec n'existe pas dans mon projet n'est pas une solution.

Bonne chance mon pote

Ce que j'envisage en ce moment, ce n'est pas seulement le problème de Facebook et Firebase, mais cela peut aussi appartenir à Unity lui-même. Parce que enableJetifier et useAndroidX ont été activés dans le fichier Unity mainTemplate.gradle, mais lorsque Unity démarre le processus de génération, le Jetifier ne fait pas son travail, il devrait migrer toutes les anciennes dépendances pour forcer l'utilisation d'AndroidX, mais ce n'est pas le cas, et Android Studio peut faire ce tour.

Le problème est à la fois un problème Google/Unity et un problème Facebook. Facebook doit mettre à niveau son SDK pour utiliser AndroidX, purement et simplement et ce problème disparaît. Google/Unity ont développé leur propre version de Jetifier qui s'exécute dans Unity pour corriger le problème jusqu'à ce que des entreprises comme Facebook le résolvent, mais Jetifier de Unity ne fonctionne pas avec le SDK Facebook !

Heureusement, Jetifier d'Android Studio fonctionne bien... et c'est littéralement la seule solution pour exécuter un jeu Unity avec le SDK Facebook et toute autre bibliothèque utilisant AndroidX.

J'ai eu le même problème et je suis passé à la v7.19.2 à partir de la V7.16, ce qui a résolu le problème pour moi.

@LunarInteractiveArts J'ai essayé 7.19.2 mais cela n'a pas fonctionné, malheureusement.
Cependant, il existe une solution publiée sur ce bogue : https://github.com/googlesamples/unity-jar-resolver/issues/360 qui fonctionne !

@doom-goober J'ai essayé ceci et cela ne fonctionne pas ou moi.
Le code ressemble à ce que le résolveur de dépendances de Google génère :
image

On dirait que j'ai trouvé le correctif dans la section d'aide OneSignal. Le correctif concerne Unity ofc. https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-compatibility
image

Je l'ai résolu en deux étapes pour Unity 2019.3.11f1 :

  1. Allez à Edit -> Project Settings -> Player -> Publishing settings ->Cochez Custom Properties Gradle Template
  2. Accédez au nouveau gradleTemplate.properties et ajoutez ces lignes en haut :
    ``` propriétés
    android.useAndroidX=true
    android.enableJetifier=true

Dans Unity 2019.2.21, les erreurs de classe en double sont toujours là même avec jetfiier activé comme ci-dessous

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

@jackatfp Avez-vous essayé la solution de @gromilQaaaa ? Voici un lien direct vers la section du document qui a fait fonctionner à nouveau ma version à partir d'Unity :
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-or-newer

C'est la section où vous devez ajouter un fichier appelé Assets/Plugins/Android/settingsTemplate.gradle.

Ce problème m'a frustré sans fin et j'étais sur le point de me résoudre à construire à partir d'Android Studio. Seule cette solution a fonctionné de manière cohérente pour moi (je pensais que la précédente fonctionnait mais elle a cessé de fonctionner pour moi lorsque j'ai ajouté d'autres plugins dans mon projet.) Et logiquement, cela avait du sens : le système gradle ne récupérait clairement pas le jetifier de Le post-processeur et les paramètres de Unity, mais il est clair que le jetifier fonctionnait car il fonctionnait dans Android Studio qui utilise gradle. Ainsi, une solution basée sur le gradle semble avoir du sens.

Quoi qu'il en soit, cela a fonctionné pour moi et j'étais tellement ennuyé et ravi de trouver une solution que j'espère que cela fonctionnera pour vous. S'il vous plaît, essayez-le! Bonne chance.

Vous avez raison de dire qu'il ne récupérait pas le jetifier dans ce cas, mais vous n'avez plus besoin d'utiliser la solution OneSignal.

En utilisant la dernière version officielle 2019.3 (la mienne est 2019.3.12f1 atm), vous pouvez simplement utiliser le modèle de propriétés Gradle personnalisé au-dessus du modèle Gradle principal et ajouter :
android.useAndroidX=true
android.enableJetifier=true
dans le fichier gradleTemplate.properties nouvellement généré.

Depuis, j'exporte vers Android studio pour construire avec tous les SDK que mon éditeur veut et travaille à travers les misères des erreurs de construction Android, en tant que développeur junior, je pense avoir rencontré tous les problèmes, mais maintenant je peux enfin construire à partir de Unity. Jetifier ne fonctionnait pas correctement avec le SDK Facebook, sauf dans le studio Android. Par conséquent, si vous utilisiez suffisamment de plug-ins migrés AndroidX, il serait difficile de créer à partir de Unity sans quelques modifications compliquées.

Je dois aussi généralement changer Plugins/Android/AndroidManifest.xml pour avoir ceci dans la balise d'application :
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
aussi xmlns:tools="http://schemas.android.com/tools" dans la balise manifeste

Oui, c'est une chaîne aléatoire car je ne sais pas quel est le but de cela, mais cela fonctionne et corrige mon erreur de construction de fusion manifeste, eh bien.

Je peux maintenant construire avec Ironsource (de nombreux adaptateurs avec), Facebook SDK, GameAnalytics, Adjust, Firebase, etc. Fondamentalement, obtenez simplement le dernier résolveur Unity Jar, vérifiez les paramètres, supprimez la résolution automatique, supprimez la résolution lors de la construction, définissez le patch maintemplate et utilisez jetifier sur true, forcez la résolution, ajoutez toutes les dépendances / dépôts supplémentaires que vous souhaitez, effectuez l'astuce gradleproperties, construisez dans Unity, terminé .

@doom-goober oui, nous avons tout essayé, y compris la solution que vous avez mentionnée mais ne fonctionne toujours pas

@doom-goober oui, nous avons tout essayé, y compris la solution que vous avez mentionnée mais ne fonctionne toujours pas

Avez-vous essayé l'option @ruslanmamonov ?

Cela m'arrive aussi. J'ai essayé toutes les solutions ci-dessus sans succès. Facebook SDK injecte d'anciennes dépendances qui entrent en conflit avec androidX et EDM4U n'est pas en mesure de les résoudre.

Exemple ci-dessous :
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 a ajouté cardview et un autre plugin local l'a également ajouté. Jetifier semble ne rien faire.
Le correctif suggéré par OneSignal ne résout pas non plus ce problème.

Oui, j'ai eu recours à la création de ma propre version personnalisée de Facebook.Unity.Editor.dll afin qu'elle n'injecte pas les implémentations conflictuelles.
Mais wow, ce n'était pas facile de construire le SDK facebook... mais ça a fonctionné à la fin :)

Je suis aux prises avec le même problème, mais la classe dupliquée est différente :

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 ne semble pas importer cette bibliothèque.

J'ai essayé des astuces jetifier, j'ai essayé de créer mainTemplate.gradle, y compris les homologues Androidx des bibliothèques héritées, y compris même la bibliothèque vectordrawable, mais j'obtiens toujours la même erreur.

mainTemplate.gradle ressemble à ceci :

// 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**

D'autres idées que peut-on faire? En gros, je viens d'ajouter facebook sdk à mon projet et j'ai eu cette erreur dès le début.

J'ai le dernier résolveur jar, facebook sdk et firebase sdk.

J'utilise toujours la même méthode que j'ai suggérée ci-dessus (dieu bénisse les propriétés de gradle) et je n'ai jamais eu de problèmes depuis, les seules choses qui ont changé, c'est que j'ai arrêté d'utiliser le SDK Android de Unity et que je l'ai téléchargé moi-même et que j'ai changé le chemin vers celui-ci capable de définir la cible sur api 30 un peu plus paisiblement. Cela ne devrait pas affecter grand-chose cependant. L'essentiel est que les paramètres EDM utilisent jetifier, le patch mainTemplate et la résolution forcée avant de construire (si vous préférez ne pas avoir la résolution automatique comme moi). Dans les paramètres de publication, j'utilise les propriétés de gradle personnalisées, le modèle principal, le manifeste Android personnalisé (je ne touche plus vraiment le modèle principal ou le manifeste Android, je les laisse être remplis par edm et les paramètres d'édition du menu facebook "régénérer le manifeste Android". Si vous obtenez erreur de classe en double avec tout ce qui est fait, alors vous en avez probablement d'autres dans votre projet que vous devez supprimer. Si vous utilisez Adjust, par exemple, vous pouvez résoudre le référent d'installation et en avoir encore un dans le dossier Plugins de votre projet que vous devez supprimer, mais oui, la plupart du temps, si vous utilisez les paramètres, j'ai suggéré que tous ces problèmes disparaissent simplement.

TL; DR : modèle de propriétés Gradle personnalisé, et ajoutez :

android.useAndroidX=true
android.enableJetifier=true

Modèle principal personnalisé, laissez EDM4U le corriger, Jetifier activé, Forcer la résolution avant la construction
Manifeste principal personnalisé, laissez Facebook régénérer le manifeste à partir de son menu Modifier les paramètres, assurez-vous également qu'il n'y a pas d'erreurs comme PATH ou toute autre chose ennuyeuse que Facebook a
Je vous promets que vous pouvez construire avec un million de SDK comme je le fais quotidiennement, et je ne suis qu'un développeur de jeux junior aléatoire qui a un peu trop vécu ce genre de choses et a eu recours à Android Studio jusqu'à ce que les propriétés de gradle personnalisées sortent

Bon, j'ai finalement trouvé un problème - j'avais un fichier aar vectordrawable flottant dans les fichiers - c'était à l'origine du problème. Je ne sais pas quelle bibliothèque l'a copié, mais j'ai supprimé ce fichier et toutes les erreurs ont disparu. Merci pour les conseils en tout cas :)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

edscodeblenders picture edscodeblenders  ·  4Commentaires

JuGGerNaunT picture JuGGerNaunT  ·  3Commentaires

laijingfeng picture laijingfeng  ·  6Commentaires

MorganMoon picture MorganMoon  ·  7Commentaires

michelleran picture michelleran  ·  4Commentaires