Facebook-sdk-for-unity: Fehler beim Build in Unity 2019.3.0f6 – Konflikt mit Firebase SDK – Doppelte Abhängigkeiten

Erstellt am 3. Feb. 2020  ·  37Kommentare  ·  Quelle: facebook/facebook-sdk-for-unity

Checkliste

Umgebung

  • Unity-Editor-Version: 2019.3.0f6
  • Unity SDK-Version: 7.18.0 und 7.18.1
  • Installationsplattform und Version: [Android] Version any
  • Firebase SDK-Version: 6.10.0
  • Unity Jar-Resolver-Version: 1.2.135

Tore

Erstellen Sie das Projekt

erwartete Ergebnisse

Projekt ist erfolgreich gebaut

Tatsächliche Ergebnisse

Das Projekt kann mit der folgenden Ausgabe nicht erstellt werden:

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.

Schritte zum Reproduzieren

  1. Neues Unity 2019.3.0f6-Projekt erstellen
  2. Legen Sie das Projekt-Build-Ziel auf Android fest.
  3. Facebook-SDK 7.18.0 importieren
  4. Importieren Sie das neueste Firebase Analytics SDK 6.10.0 in das Projekt.
  5. Importieren Sie Unity Jar Resolver v1.2.135 in das Projekt.
  6. mainTemplate.gradle aktivieren (Player-Einstellungen -> Veröffentlichungseinstellungen -> benutzerdefinierte Gradle-Vorlage überprüfen)
  7. Klicken Sie auf Assets/Play Services Resolver/Android Resolver/Resolve
  8. Aktivieren Sie Jetifier, wenn Sie dazu aufgefordert werden
  9. Erstellen Sie das Projekt

ODER

  1. Laden Sie das von mir erstellte Repro-Projekt herunter und öffnen Sie es.
  2. Build-Ziel auf Android ändern
  3. Erstellen Sie das Projekt

Codebeispiele & Details

Wenn ich nur mit Facebook SDK baue, funktioniert es.
Wenn ich nur mit Firebase SDK baue, funktioniert es.
Wenn ich sowohl mit dem Facebook SDK als auch mit dem Firebase SDK baue, schlägt es fehl.

Ich habe ein Repro-Projekt nach den oben genannten Schritten erstellt.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing

bug

Hilfreichster Kommentar

Ich habe es in zwei Schritten für Unity 2019.3.11f1 gelöst :

  1. Gehe zu Edit -> Project Settings -> Player -> Publishing settings -> Kreuze Custom Properties Gradle Template
  2. Gehen Sie zum neu generierten gradleTemplate.properties und fügen Sie diese Zeilen oben hinzu:
    ```Eigenschaften
    android.useAndroidX=true
    android.enableJetifier=true

Alle 37 Kommentare

HI @KylinChang , gibt es dazu irgendwelche Updates?

Wir können das Projekt nicht auf Unity 2019.3 aufbauen.
Auf Android wegen dieses Problems und auf iOS wegen Nr. 359.

Hey @mcrvaz , kannst du v7.18.1 ausprobieren?

Das gleiche Problem tritt auch mit Facebook SDK v7.18.1 auf.

Das gleiche Problem tritt mit Facebook SDK v7.18.1 auf. Unser Spiel kann momentan nicht erstellt werden. Firebase oder Facebook vorübergehend deaktivieren.

@kashiftasneempro hast du zuerst das alte Plugin gelöscht?

@kashiftasneempro hast du zuerst das alte Plugin gelöscht?

Ja, habe ich.

Ich habe das gleiche Problem, hat jemand diesbezüglich Fortschritte gemacht? Scheint ein Konflikt zwischen Androidx und Support-Bibliothek zu sein?

Eigentlich: Ich habe das noch nicht vollständig getestet, aber entfernen

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

Von build.gradle bekomme ich wieder APK's. Werde aber mal testen ob was kaputt ist.

Update 1: Es sieht so aus, als ob die Dinge auf meiner Seite funktionieren, Facebook funktioniert immer noch und ich bekomme die Initialisierung des Firebase-Push-Tokens korrekt.

Update 2: Ich habe vergessen zu erwähnen, dass ich auch eine Zeile in der Firebase AndroidManifest-Datei entfernen muss, die verwendet-sdk ... 14
Beim Entfernen dieser beiden Zeilen funktioniert alles wunderbar. Ich konnte alles im Zusammenhang mit meinen Anwendungsfällen testen. Hoffentlich hilft das anderen.

Eigentlich: Ich habe das noch nicht vollständig getestet, aber entfernen

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

Von build.gradle bekomme ich wieder APK's. Werde aber mal testen ob was kaputt ist.

Update 1: Es sieht so aus, als ob die Dinge auf meiner Seite funktionieren, Facebook funktioniert immer noch und ich bekomme die Initialisierung des Firebase-Push-Tokens korrekt.

Update 2: Ich habe vergessen zu erwähnen, dass ich auch eine Zeile in der Firebase AndroidManifest-Datei entfernen muss, die verwendet-sdk ... 14
Beim Entfernen dieser beiden Zeilen funktioniert alles wunderbar. Ich konnte alles im Zusammenhang mit meinen Anwendungsfällen testen. Hoffentlich hilft das anderen.

Arbeitest du in Unity?

Unity hat mainTemplate.gradle nicht build.gradle.

Ja, das ist Unity, anstatt die apk/aab aus dem Editor zu erstellen, exportiere ich nach Android Studio, damit ich Abhängigkeiten durcharbeiten kann. Es hilft sehr beim Debuggen von solchen Dingen.

Hallo @ncinoadam , welche Firebase-Module verwenden Sie? Nur Push-Benachrichtigungen?

@ncinoadam @kashiftasneempro Ich habe es geschafft, dies zu lösen, indem ich folgt geändert habe:

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

Hallo @ncinoadam , welche Firebase-Module verwenden Sie? Nur Push-Benachrichtigungen?

Ich verwende derzeit nur das Messaging-Modul, aber es wäre nicht schwer, die Konflikte herauszufinden und sie auch für andere zu beheben.

Das Problem kann gelöst werden, indem Projekt und Build mit Android Studio exportiert und dann mit AndroidX migriert werden, indem fast alte Abhängigkeiten nach dem erwähnten

Eigentlich: Ich habe das noch nicht vollständig getestet, aber entfernen

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

Von build.gradle bekomme ich wieder APK's. Werde aber mal testen ob was kaputt ist.

Update 1: Es sieht so aus, als ob die Dinge auf meiner Seite funktionieren, Facebook funktioniert immer noch und ich bekomme die Initialisierung des Firebase-Push-Tokens korrekt.

Update 2: Ich habe vergessen zu erwähnen, dass ich auch eine Zeile in der Firebase AndroidManifest-Datei entfernen muss, die verwendet-sdk ... 14
Beim Entfernen dieser beiden Zeilen funktioniert alles wunderbar. Ich konnte alles im Zusammenhang mit meinen Anwendungsfällen testen. Hoffentlich hilft das anderen.

Danke @ncinoadam , das hat bei mir mit dem Analysemodul funktioniert.

Ich stimme @GunLengend zu , es ist ein Hack, mit Dateien in Android Studio

EDIT: Ich möchte auch erwähnen, dass dieses Problem nichts mit dem Facebook SDK zu tun hatte, da ich es nicht in meinem Projekt habe. Ich habe hier ein Problem eröffnet (https://github.com/firebase/quickstart-unity/issues/607), weil ich so ziemlich die gleiche Unity-Protokollausgabe hatte und das Problem mit dem behoben habe , was

Was ich gerade überlege, ist nicht nur ein Facebook- und Firebase-Problem, sondern es kann auch zu Unity selbst gehören. Da enableJetifier und useAndroidX in der Unity-Datei mainTemplate.gradle aktiviert wurden, aber wenn Unity den Build-Prozess startet, der Jetifier seine Aufgabe nicht erfüllt, sollte er alle alten Abhängigkeiten migrieren, um die Verwendung von AndroidX zu erzwingen, aber das ist nicht der Fall, und Android Studio kann diesen Trick machen.

Was ich gerade überlege, ist nicht nur ein Facebook- und Firebase-Problem, sondern es kann auch zu Unity selbst gehören. Da enableJetifier und useAndroidX in der Unity-Datei mainTemplate.gradle aktiviert wurden, aber wenn Unity den Build-Prozess startet, der Jetifier seine Aufgabe nicht erfüllt, sollte er alle alten Abhängigkeiten migrieren, um die Verwendung von AndroidX zu erzwingen, aber das ist nicht der Fall, und Android Studio kann diesen Trick machen.

Nach dem Upgrade auf die neueste Version von Unity, Facebook SDK, Firebase SDK, sind alle Android-Build-Probleme behoben. Jetzt kämpfe ich mit iOS in Xcode, aber es hat nichts mit diesem SDK zu tun.

BEARBEITEN: Dies könnte daran liegen, dass ich Firebase Analytics zuvor aktiviert hatte und jetzt nicht mehr. Ich habe das Facebook SDK nicht verwendet, als ich das Problem zum ersten Mal bekam, es war ein Problem mit dem Mapbox SDK, das Java-Bibliotheken neu verteilt, anstatt auf den Android-Resolver zu aktualisieren. Ich habe Mapbox abgeschafft und angefangen, Google Maps zu verwenden, so gut dort, aber dann habe ich eine ältere Version des Facebook SDK eingeführt, weil die Dokumentation eines meiner Assets die ältere Version fordert und ich bei der Einführung mehrere doppelte Klassen hatte. Also bekam ich das neue Facebook SDK und musste den Code im Asset anpassen, der die ältere Version benötigte. Derzeit funktioniert nur die Firebase-Authentifizierung, aber sie scheint immer noch androidx.core.core-1.0.0 zu verwenden, und dort waren die meisten doppelten Klassen für mich. Hoffentlich hilft das

Ich habe denselben Konflikt, wenn ich FB zu meinem Projekt hinzufüge, in dem ich AdMob habe

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

Nach dem Hinzufügen vorgeschlagen
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

ich bekomme

java.lang.RuntimeException: Doppelte Klasse android.support.customtabs.ICustomTabsCallback in den Modulen classes.jar (androidx.browser:browser:1.0.0) und classes.jar (com.android.support:customtabs:28.0.0)

Und mehr ...
Ich habe die neuesten Versionen aller SDKs und Unity.

Ich weiß nicht, warum Sie mir einen Daumen runter gegeben haben und warum ich Ihnen danach helfen möchte, aber ich schlage vor, dass Sie die com.android löschen. support:customtabs :28.0.0, normalerweise gespeichert unter Assets/Plugins/Android/ und sehen Sie, ob das Ihr Problem behebt.

Das Problem ist, dass ich mainTemplate.gradle anstatt Tonnen von Bibliotheken im Ordner Assets/Plugins/Android/ zu haben. (haben begrenzten Platz im Repository).
Ich habe alle implementation 'com.android.support.XXXX' entfernt und habe immer noch das gleiche Problem.

Sie haben Daumen runter, weil Ihre Lösung nicht für mich ist. Wenn der Admin einen solchen Beitrag wie Ihren liest, kann er dieses Problem schließen, weil er davon ausgeht, dass alles erledigt ist, wenn dies NICHT der Fall ist.
Ich unterstütze viele Projekte und Lösungen wie: Export to Android Studio oder remove library mit ist in meinem Projekt nicht vorhanden ist keine Lösung.

Viel Glück, Bud

Was ich gerade überlege, ist nicht nur ein Facebook- und Firebase-Problem, sondern es kann auch zu Unity selbst gehören. Da enableJetifier und useAndroidX in der Unity-Datei mainTemplate.gradle aktiviert wurden, aber wenn Unity den Build-Prozess startet, der Jetifier seine Aufgabe nicht erfüllt, sollte er alle alten Abhängigkeiten migrieren, um die Verwendung von AndroidX zu erzwingen, aber das ist nicht der Fall, und Android Studio kann diesen Trick machen.

Das Problem ist sowohl ein Google/Unity-Problem als auch ein Facebook-Problem. Facebook muss sein SDK aktualisieren, um AndroidX zu verwenden, ganz einfach und dieses Problem verschwindet. Google/Unity haben ihre eigene Version von Jetifier entwickelt, die in Unity ausgeführt wird, um das Problem zu beheben, bis Unternehmen wie Facebook es beheben, aber Jetifier von Unity funktioniert nicht mit dem Facebook SDK!

Glücklicherweise funktioniert Jetifier von Android Studio gut ... und das ist buchstäblich die einzige Lösung, um ein Unity-Spiel mit Facebook SDK und jeder anderen Bibliothek, die AndroidX verwendet, auszuführen.

Ich hatte das gleiche Problem und wechselte von V7.16 auf v7.19.2, wodurch das Problem für mich behoben wurde.

@LunarInteractiveArts Ich habe 7.19.2 ausprobiert, aber es hat leider nicht funktioniert.
Es gibt jedoch eine Lösung für diesen Fehler: https://github.com/googlesamples/unity-jar-resolver/issues/360 , die funktioniert!

@doom-goober Ich habe das versucht und es funktioniert nicht oder ich.
Der Code sieht ähnlich aus, was der Google Dependencies Resolver generiert:
image

Sieht so aus, als hätte ich den Fix im OneSignal-Hilfebereich gefunden. Fix ist für Unity ofc. https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-compatibility
image

Ich habe es in zwei Schritten für Unity 2019.3.11f1 gelöst :

  1. Gehe zu Edit -> Project Settings -> Player -> Publishing settings -> Kreuze Custom Properties Gradle Template
  2. Gehen Sie zum neu generierten gradleTemplate.properties und fügen Sie diese Zeilen oben hinzu:
    ```Eigenschaften
    android.useAndroidX=true
    android.enableJetifier=true

In Unity 2019.2.21 sind die doppelten Klassenfehler auch bei aktiviertem Jetfiier wie unten beschrieben noch vorhanden

([rootProject] + (rootProject.subprojects als Liste)).each {
ext {
it.setProperty("android.useAndroidX", true)
it.setProperty("android.enableJetifier", true)
}}
}}

@jackatfp Hast du @gromilQaaaa ‚s Lösung versuchen? Hier ist ein direkter Link zu dem Abschnitt des Dokuments, der meinen Build wieder von Unity zum Laufen gebracht hat:
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-oder-neuer

Dies ist der Abschnitt, in dem Sie eine Datei namens Assets/Plugins/Android/settingsTemplate.gradle hinzufügen müssen.

Dieses Problem frustrierte mich ohne Ende und ich wollte mich dazu entschließen, mit Android Studio zu bauen. Nur diese Lösung hat bei mir durchweg funktioniert (ich dachte, die vorherige funktionierte, aber sie funktionierte bei mir nicht mehr, als ich einige andere Plugins wieder in mein Projekt einfügte.) Und logischerweise machte es einen Sinn: Das Gradle-System nahm den Jetifier eindeutig nicht von Der Postprozessor und die Einstellungen von Unity, aber der Jetifier funktionierte eindeutig, da er in Android Studio funktionierte, das Gradle verwendet. Eine gradlebasierte Lösung scheint also sinnvoll zu sein.

Jedenfalls hat es bei mir funktioniert und ich war so verärgert und erfreut, eine Lösung zu finden, die ich hoffe, dass sie für Sie funktioniert. Bitte versuchen Sie es! Viel Glück.

Sie haben Recht, dass in diesem Fall der Jetifier nicht aufgenommen wurde, aber Sie müssen die OneSignal-Lösung nicht mehr verwenden.

Mit der neuesten offiziellen Version 2019.3 (meine ist 2019.3.12f1 atm) können Sie einfach die Vorlage für benutzerdefinierte Gradle-Eigenschaften über der Haupt-Gradle-Vorlage verwenden und Folgendes hinzufügen:
android.useAndroidX=true
android.enableJetifier=true
in die neu generierte Datei gradleTemplate.properties.

Ich habe in Android Studio exportiert, um mit allen SDKs zu bauen, die mein Publisher will, und seitdem die Misere von Android-Build-Fehlern durchgearbeitet, als Junior-Entwickler denke ich, dass ich auf jedes Problem gestoßen bin, aber jetzt kann ich endlich aus Unity heraus bauen. Jetifier funktionierte außer in Android Studio nicht richtig mit dem Facebook SDK.

Normalerweise muss ich auch Plugins/Android/AndroidManifest.xml ändern, um dies im Anwendungs-Tag zu haben:
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
auch xmlns:tools="http://schemas.android.com/tools" im Manifest-Tag

Ja, es ist eine zufällige Zeichenfolge, da ich nicht sicher bin, was der Zweck davon ist, aber es funktioniert und behebt meinen manifesten Merger-Build-Fehler, na ja.

Ich kann jetzt mit Ironsource (viele Adapter damit), Facebook SDK, GameAnalytics, Adjust, Firebase und was auch immer bauen. Im Grunde einfach den neuesten Unity Jar Resolver holen, die Einstellungen überprüfen, automatische Auflösung entfernen, Auflösung beim Build entfernen, Patch-Maintemplate setzen und Jetifier auf true setzen, Auflösung erzwingen, zusätzliche Abhängigkeiten / Repos hinzufügen, die Sie möchten, machen den Gradleproperties-Trick, bauen in Unity, fertigity .

@doom-goober ja, wir haben alles versucht, einschließlich der von dir erwähnten Lösung, aber es funktioniert immer noch nicht

@doom-goober ja, wir haben alles versucht, einschließlich der von dir erwähnten Lösung, aber es funktioniert immer noch nicht

Hast du die Option @ruslanmamonov ausprobiert?

Das passiert mir auch. Ich habe alle oben genannten Lösungen ohne Erfolg ausprobiert. Facebook SDK injiziert alte Abhängigkeiten, die mit AndroidX kollidieren und EDM4U kann sie nicht lösen.

Beispiel unten:
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 hat cardview hinzugefügt und ein weiteres lokales Plugin hat es ebenfalls hinzugefügt. Jetifier scheint nichts zu tun.
Der von OneSignal vorgeschlagene Fix behebt dieses Problem ebenfalls nicht.

Ja, ich habe darauf zurückgegriffen, meine eigene benutzerdefinierte Version der Facebook.Unity.Editor.dll zu erstellen, damit die widersprüchlichen Implementierungen nicht injiziert werden.
Aber wow, es war nicht einfach das Facebook SDK zu bauen... aber am Ende hat es geklappt :)

Ich habe mit dem gleichen Problem zu kämpfen, aber die duplizierte Klasse ist anders:

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 scheint diese Bibliothek nicht zu importieren.

Ich habe Jetifier-Tricks ausprobiert, ich habe versucht, mainTemplate.gradle zu erstellen, einschließlich Androidx-Gegenstücken von Legacy-Bibliotheken, sogar einschließlich vektorzeichnungsfähiger Bibliotheken, aber immer noch erhalte ich immer den gleichen Fehler.

mainTemplate.gradle sieht so aus:

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

Andere Ideen, was getan werden kann? Ich habe im Grunde genommen gerade Facebook SDK zu meinem Projekt hinzugefügt und diesen Fehler von Anfang an erhalten.

Ich habe den neuesten Jar-Resolver, Facebook-SDK und Firebase-SDK.

Ich verwende immer noch dieselbe Methode, die ich oben vorgeschlagen habe (Gott segne Gradle-Eigenschaften) und hatte seitdem nie Probleme. Das einzige, was sich geändert hat, ist, dass ich das Android SDK von Unity nicht mehr verwendet und es selbst heruntergeladen und den Pfad dazu geändert habe, um zu sein in der Lage, das Ziel auf API 30 etwas friedlicher zu setzen. Das sollte aber nicht viel bewirken. Die Hauptsache ist, dass die EDM-Einstellungen Jetifier, mainTemplate-Patching und die Auflösung erzwingen, bevor Sie sie erstellen (wenn Sie es vorziehen, keine automatische Auflösung wie ich zu verwenden). In den Veröffentlichungseinstellungen verwende ich benutzerdefinierte Gradle-Eigenschaften, Hauptvorlage, benutzerdefiniertes Android-Manifest (ich berühre die Hauptvorlage oder das Android-Manifest nicht mehr wirklich, ich lasse sie von edm- und Facebook-Menübearbeitungseinstellungen "Android-Manifest neu generieren" füllen Duplizierter Klassenfehler mit all dem, was getan wird, dann haben Sie wahrscheinlich zusätzliche in Ihrem Projekt, die Sie entfernen sollten.Wenn Sie zum Beispiel Adjust verwenden, können Sie den Installations-Referrer auflösen und immer noch einen weiteren in Ihrem Projekt-Plugins-Ordner haben, den Sie löschen sollten. Aber ja, die meiste Zeit, wenn Sie die Einstellungen verwenden, die ich vorgeschlagen habe, werden all diese Probleme einfach ... verschwinden.

TL;DR: Vorlage für benutzerdefinierte Gradle-Eigenschaften und fügen Sie hinzu:

android.useAndroidX=true
android.enableJetifier=true

Benutzerdefinierte Hauptvorlage, EDM4U patchen lassen, Jetifier an, Auflösung vor Build erzwingen
Benutzerdefiniertes Hauptmanifest, lassen Sie Facebook Manifest über das Menü Einstellungen bearbeiten und stellen Sie sicher, dass dort keine Fehler wie PATH oder was auch immer nerviges Facebook hat
Ich verspreche Ihnen, dass Sie mit einer Million SDKs bauen können, wie ich es täglich tue, und ich bin nur ein zufälliger Junior-Spieleentwickler, der dieses Zeug ein bisschen zu viel durchgemacht und auf Android Studio zurückgegriffen hat, bis benutzerdefinierte Gradle-Eigenschaften herauskamen

Okay, endlich habe ich ein Problem gefunden - ich hatte eine vektorziehbare AAR-Datei, die in Dateien herumschwirrte - dies hat das Problem verursacht. Ich bin mir nicht sicher, welche Bibliothek sie kopiert hat, aber ich habe diese Datei entfernt und alle Fehler sind verschwunden. Danke trotzdem für die Hinweise :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

manofspirit picture manofspirit  ·  6Kommentare

laijingfeng picture laijingfeng  ·  6Kommentare

MorganMoon picture MorganMoon  ·  7Kommentare

derwaldgeist picture derwaldgeist  ·  4Kommentare

edscodeblenders picture edscodeblenders  ·  4Kommentare