Facebook-sdk-for-unity: Gagal membangun di Unity 2019.3.0f6 - Konflik dengan Firebase SDK - Duplikat dependensi

Dibuat pada 3 Feb 2020  ·  37Komentar  ·  Sumber: facebook/facebook-sdk-for-unity

Daftar periksa

Lingkungan Hidup

  • Versi Editor Unity: 2019.3.0f6
  • Versi SDK Unity: 7.18.0 dan 7.18.1
  • Platform & Versi Instalasi: [Android] versi any
  • Versi SDK Firebase: 6.10.0
  • Versi Unity Jar Resolver: 1.2.135

Gol

Bangun proyek

Hasil yang diharapkan

Proyek berhasil dibangun

Hasil nyata

Proyek gagal dibangun dengan output berikut:

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.

Langkah-langkah untuk Reproduksi

  1. Buat proyek unity 2019.3.0f6 baru
  2. Tetapkan target pembangunan proyek ke Android.
  3. Impor Facebook SDK 7.18.0
  4. Impor Firebase Analytics SDK 6.10.0 terbaru ke dalam proyek.
  5. Impor Unity Jar Resolver v1.2.135 ke dalam proyek.
  6. Aktifkan mainTemplate.gradle (Pengaturan pemain -> pengaturan penerbitan -> periksa template gradle khusus)
  7. Klik Aset/Play Services Resolver/Android Resolver/Resolve
  8. Aktifkan Jetifier saat diminta
  9. Bangun proyek

ATAU

  1. Unduh dan buka proyek repro yang saya buat.
  2. Ubah target build ke Android
  3. Bangun proyek

Contoh & Detail Kode

Jika saya membangun hanya dengan Facebook SDK, itu berfungsi.
Jika saya membangun hanya dengan Firebase SDK, itu berfungsi.
Jika saya membangun dengan SDK Facebook dan SDK Firebase, itu gagal.

Saya membuat proyek Repro mengikuti langkah-langkah yang saya sebutkan sebelumnya.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing

bug

Komentar yang paling membantu

Saya menyelesaikannya dalam dua langkah untuk Unity 2019.3.11f1 :

  1. Pergi ke Edit -> Project Settings -> Player -> Publishing settings ->Centang Custom Properties Gradle Template
  2. Buka gradleTemplate.properties dan tambahkan baris ini ke atas:
    ```properti
    android.useAndroidX=true
    android.enableJetifier=benar

Semua 37 komentar

HI @KylinChang , apakah ada pembaruan tentang ini?

Kami tidak dapat membangun proyek di Unity 2019.3.
Di Android karena masalah ini, dan di iOS, karena #359.

Hai @mcrvaz , bisakah kamu mencoba v7.18.1?

Menghadapi masalah yang sama dengan Facebook SDK v7.18.1 juga.

Menghadapi masalah yang sama dengan Facebook SDK v7.18.1. Game kami tidak dapat dibangun sekarang. Penonaktifan sementara Firebase atau Facebook.

@kashiftasneempro apakah Anda menghapus plugin lama terlebih dahulu?

@kashiftasneempro apakah Anda menghapus plugin lama terlebih dahulu?

Ya saya lakukan.

Saya mengalami masalah yang sama, apakah ada yang membuat kemajuan dalam hal ini? Sepertinya konflik perpustakaan dukungan vs androidx?

Sebenarnya: Saya belum menguji ini sepenuhnya, tetapi menghapus

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

Dari build.gradle membuat saya membangun apk lagi. Akan melakukan beberapa pengujian untuk melihat apakah ada yang rusak.

Pembaruan 1: Sepertinya semuanya berfungsi di pihak saya, Facebook masih berfungsi dan saya mendapatkan inisialisasi token Firebase dengan benar.

Pembaruan 2: Saya lupa menyebutkan bahwa saya juga harus menghapus baris di file Firebase AndroidManifest yang menggunakan-sdk ... 14
Saat menghapus dua baris itu, semuanya berfungsi dengan baik. saya sudah dapat menguji semua yang terkait dengan kasus penggunaan saya. Semoga ini membantu orang lain.

Sebenarnya: Saya belum menguji ini sepenuhnya, tetapi menghapus

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

Dari build.gradle membuat saya membangun apk lagi. Akan melakukan beberapa pengujian untuk melihat apakah ada yang rusak.

Pembaruan 1: Sepertinya semuanya berfungsi di pihak saya, Facebook masih berfungsi dan saya mendapatkan inisialisasi token Firebase dengan benar.

Pembaruan 2: Saya lupa menyebutkan bahwa saya juga harus menghapus baris di file Firebase AndroidManifest yang menggunakan-sdk ... 14
Saat menghapus dua baris itu, semuanya berfungsi dengan baik. saya sudah dapat menguji semua yang terkait dengan kasus penggunaan saya. Semoga ini membantu orang lain.

Apakah Anda bekerja di Unity?

Unity memiliki mainTemplate.gradle bukan build.gradle.

Ya ini Unity, alih-alih membangun apk/aab dari editor, saya mengekspor ke Android Studio sehingga saya dapat bekerja melalui dependensi. Ini sangat membantu ketika men-debug hal-hal seperti ini.

Hai @ncinoadam , modul Firebase mana yang Anda gunakan? Hanya push notifikasi?

@ncinoadam @kashiftasneempro Saya berhasil menyelesaikan ini dengan mengaktifkan Jetifier dan memodifikasi file mainTemplate.gradle seperti ini:

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

Hai @ncinoadam , modul Firebase mana yang Anda gunakan? Hanya push notifikasi?

Saat ini saya hanya menggunakan modul Messaging, tetapi tidak akan sulit untuk mengetahui konflik dan memperbaikinya untuk orang lain juga.

Masalahnya dapat diselesaikan dengan mengekspor proyek dan membangun dengan Android Studio, kemudian bermigrasi dengan AndroidX dengan mengganti dependensi yang hampir lama mengikuti @hex yang disebutkan. Tapi itu bukan cara yang seharusnya, konflik sekarang terjadi di sekitar paket masih menggunakan dependensi lama sementara AndroidX diaktifkan setelah Force Resolve, jadi harap ada perbaikan yang tersedia atau cara resmi untuk membangun tanpa mengekspor proyek.

Sebenarnya: Saya belum menguji ini sepenuhnya, tetapi menghapus

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

Dari build.gradle membuat saya membangun apk lagi. Akan melakukan beberapa pengujian untuk melihat apakah ada yang rusak.

Pembaruan 1: Sepertinya semuanya berfungsi di pihak saya, Facebook masih berfungsi dan saya mendapatkan inisialisasi token Firebase dengan benar.

Pembaruan 2: Saya lupa menyebutkan bahwa saya juga harus menghapus baris di file Firebase AndroidManifest yang menggunakan-sdk ... 14
Saat menghapus dua baris itu, semuanya berfungsi dengan baik. saya sudah dapat menguji semua yang terkait dengan kasus penggunaan saya. Semoga ini membantu orang lain.

Terima kasih @ncinoadam , ini berhasil bagi saya menggunakan modul analitik.

Saya setuju dengan @GunLengend , ini adalah peretasan untuk mengacaukan file di Android Studio dan itu harus ditangani di dalam Unity tanpa perlu mengekspor setiap kali Anda ingin membangun

EDIT: Saya juga ingin menyebutkan bahwa masalah ini tidak ada hubungannya dengan SDK Facebook karena saya tidak memilikinya di proyek saya. Saya membuka masalah di sini ( https://github.com/firebase/quickstart-unity/issues/607) karena saya memiliki output log Unity yang hampir sama dan memperbaiki masalah dengan apa yang disebutkan @ncinoadam , jadi ini sepertinya lebih dari hal Firebase

Apa yang saya pertimbangkan saat ini bukan hanya masalah Facebook dan Firebase, tetapi juga milik Unity itu sendiri. Karena enableJetifier dan useAndroidX diaktifkan di file Unity mainTemplate.gradle tetapi ketika Unity memulai proses build, Jetifier tidak melakukan tugasnya, seharusnya memigrasikan semua dependensi lama untuk memaksa penggunaan AndroidX, tetapi ternyata tidak, dan Android Studio bisa melakukan trik itu.

Apa yang saya pertimbangkan saat ini bukan hanya masalah Facebook dan Firebase, tetapi juga milik Unity itu sendiri. Karena enableJetifier dan useAndroidX diaktifkan di file Unity mainTemplate.gradle tetapi ketika Unity memulai proses build, Jetifier tidak melakukan tugasnya, seharusnya memigrasikan semua dependensi lama untuk memaksa penggunaan AndroidX, tetapi ternyata tidak, dan Android Studio bisa melakukan trik itu.

Setelah memutakhirkan ke versi terbaru Unity, Facebook SDK, Firebase SDK, semua masalah build Android telah hilang. Sekarang saya berjuang dengan iOS di Xcode, tetapi tidak terkait dengan SDK ini.

EDIT: Ini bisa jadi karena saya mengaktifkan Firebase Analytics sebelumnya dan sekarang tidak. Saya tidak menggunakan Facebook SDK ketika saya pertama kali mendapatkan masalah, itu adalah masalah dengan Mapbox SDK yang dan tampaknya mereka mendistribusikan kembali perpustakaan Java alih-alih memperbarui ke resolver Android. Saya menyingkirkan Mapbox dan mulai menggunakan peta Google, sangat bagus di sana, tetapi kemudian saya memperkenalkan versi SDK Facebook yang lebih lama karena dokumentasi salah satu aset saya meminta versi yang lebih lama dan saya memiliki beberapa kelas duplikat saat memperkenalkannya. Jadi saya mendapatkan SDK Facebook baru dan saya harus menyesuaikan kode di aset yang memerlukan versi yang lebih lama. Saat ini saya hanya memiliki Firebase Authentication yang berfungsi, tetapi tampaknya masih menggunakan androidx.core.core-1.0.0 dan di situlah sebagian besar kelas duplikat untuk saya. Semoga ini membantu

Saya memiliki konflik yang sama saat menambahkan FB ke proyek saya di mana saya memiliki AdMob

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

Setelah menambahkan disarankan
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

saya mendapatkan

java.lang.RuntimeException: Duplikat class android.support.customtabs.ICustomTabsCallback ditemukan di modul class.jar (androidx.browser:browser:1.0.0) dan class.jar (com.android.support:customtabs:28.0.0)

Dan banyak lagi...
Saya memiliki versi terbaru dari semua SDK dan Unity.

Saya tidak tahu mengapa Anda memberi saya jempol ke bawah dan lebih jauh lagi mengapa saya ingin membantu Anda setelah melakukannya, tetapi saya sarankan Anda menghapus com.android. support:customtabs :28.0.0, biasanya disimpan di Assets/Plugins/Android/ dan lihat apakah itu memperbaiki masalah Anda.

Masalahnya adalah saya menggunakan mainTemplate.gradle alih-alih memiliki banyak lib di folder Aset/Plugin/Android/. (memiliki ruang terbatas dalam repositori).
Saya menghapus semua implementation 'com.android.support.XXXX' darinya dan masih memiliki masalah yang sama.

Anda mendapat jempol karena solusi Anda bukan untuk saya, Ketika Admin membaca posting seperti milik Anda, Dia dapat menutup masalah ini karena dia akan menganggap bahwa semuanya sudah selesai, padahal BUKAN.
Saya mendukung banyak proyek dan solusi seperti: Export to Android Studio atau remove library with is not existing in my project is not a solution.

Selamat ya bun

Apa yang saya pertimbangkan saat ini bukan hanya masalah Facebook dan Firebase, tetapi juga milik Unity itu sendiri. Karena enableJetifier dan useAndroidX diaktifkan di file Unity mainTemplate.gradle tetapi ketika Unity memulai proses build, Jetifier tidak melakukan tugasnya, seharusnya memigrasikan semua dependensi lama untuk memaksa penggunaan AndroidX, tetapi ternyata tidak, dan Android Studio bisa melakukan trik itu.

Masalahnya adalah masalah Google/Unity dan masalah Facebook. Facebook perlu memutakhirkan SDK mereka untuk menggunakan AndroidX, murni dan sederhana dan masalah ini hilang. Google/Unity telah mengembangkan versi Jetifier mereka sendiri yang berjalan dalam Unity untuk menambal masalah sampai perusahaan seperti Facebook memperbaikinya, tetapi Unity's Jetifier tidak bekerja dengan SDK Facebook!

Untungnya, Jetifier Android Studio berfungsi dengan baik... dan itu benar-benar satu-satunya solusi untuk menjalankan game Unity dengan Facebook SDK dan perpustakaan lain yang menggunakan AndroidX.

Saya memiliki masalah yang sama dan beralih ke v7.19.2 dari V7.16 yang memperbaiki masalah untuk saya.

@LunarInteractiveArts Saya mencoba 7.19.2 tapi sayangnya tidak berhasil.
Namun, ada solusi yang diposting pada bug ini: https://github.com/googlesamples/unity-jar-resolver/issues/360 yang berfungsi!

@ doom-goober saya memang mencoba ini dan tidak berhasil atau saya.
Kode terlihat mirip dengan apa yang dihasilkan oleh resolver dependensi Google:
image

Sepertinya saya telah menemukan perbaikannya di bagian bantuan OneSignal. Perbaiki adalah untuk Unity ofc. https://documentation.onesignal.com/docs/troubleshooting-unity#section -android-x-compatibility
image

Saya menyelesaikannya dalam dua langkah untuk Unity 2019.3.11f1 :

  1. Pergi ke Edit -> Project Settings -> Player -> Publishing settings ->Centang Custom Properties Gradle Template
  2. Buka gradleTemplate.properties dan tambahkan baris ini ke atas:
    ```properti
    android.useAndroidX=true
    android.enableJetifier=benar

Di Unity 2019.2.21, kesalahan kelas duplikat masih ada bahkan dengan jetfiier diaktifkan seperti di bawah ini

([rootProject] + (rootProject.subprojects sebagai Daftar)).setiap {
ext {
it.setProperty("android.useAndroidX", benar)
it.setProperty("android.enableJetifier", benar)
}
}

@jackatfp Apakah Anda mencoba solusi @gromilQaaaa ? Berikut tautan langsung ke bagian dokumen yang membuat build saya berfungsi kembali dari Unity:
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-or-newer

Ini adalah bagian di mana Anda harus menambahkan file bernama Assets/Plugins/Android/settingsTemplate.gradle.

Masalah ini membuat saya frustrasi tanpa akhir dan saya memutuskan untuk membangun dari Android Studio. Hanya solusi ini yang bekerja secara konsisten untuk saya (saya pikir yang sebelumnya berfungsi tetapi berhenti bekerja untuk saya ketika saya menambahkan beberapa plugin lain kembali ke proyek saya.) Dan secara logis itu masuk akal: Sistem gradle jelas tidak mengambil jetifier dari Prosesor dan pengaturan pasca Unity tetapi jelas jetifier berfungsi karena berfungsi di Android Studio yang menggunakan gradle. Jadi, solusi yang berbasis gradle tampaknya masuk akal.

Bagaimanapun itu berhasil untuk saya dan saya sangat kesal dan senang menemukan solusi, saya harap ini berhasil untuk Anda. Ayo cobalah! Semoga berhasil.

Anda benar bahwa itu tidak mengambil jetifier dalam kasus itu, tetapi Anda tidak perlu menggunakan solusi OneSignal lagi.

Menggunakan versi resmi 2019.3 terbaru (milik saya adalah 2019.3.12f1 atm), Anda cukup menggunakan Custom Gradle Properties Template di atas Main Gradle Template, dan tambahkan:
android.useAndroidX=true
android.enableJetifier=true
ke file gradleTemplate.properties yang baru dibuat.

Saya telah mengekspor ke Android studio untuk membangun dengan semua SDK yang diinginkan penerbit saya dan bekerja melalui kesengsaraan kesalahan build Android sejak itu, sebagai pengembang junior saya pikir saya mengalami setiap masalah, tetapi sekarang saya akhirnya dapat membangun dari dalam Unity. Jetifier tidak bekerja dengan SDK Facebook dengan benar kecuali di Android studio, jadi jika Anda menggunakan cukup banyak plugin yang dimigrasikan ke AndroidX, akan sulit untuk membangun dari dalam Unity tanpa beberapa perubahan peretasan.

Saya juga biasanya harus mengubah Plugins/Android/AndroidManifest.xml untuk memiliki ini di tag aplikasi:
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
juga xmlns:tools="http://schemas.android.com/tools" dalam tag manifes

Ya, ini adalah string acak karena saya tidak yakin apa tujuannya, tetapi ini berfungsi dan memperbaiki kesalahan build merger manifes saya, oh well.

Saya sekarang dapat membangun dengan Ironsource (banyak adaptor dengan itu), Facebook SDK, GameAnalytics, Adjust, Firebase, apa pun. Pada dasarnya dapatkan Unity Jar Resolver terbaru, periksa pengaturan hapus penyelesaian otomatis, hapus penyelesaian pada build, setel patch maintemplate dan gunakan jetifier menjadi true, paksa penyelesaian, tambahkan dependensi/repos tambahan yang Anda inginkan, lakukan trik gradleproperties, bangun di dalam Unity, selesai .

@doom-goober ya, kami mencoba semuanya termasuk solusi yang Anda sebutkan tetapi masih tidak berhasil

@doom-goober ya, kami mencoba semuanya termasuk solusi yang Anda sebutkan tetapi masih tidak berhasil

Apakah Anda mencoba opsi @ruslanmamonov ?

Ini juga terjadi pada saya. Saya telah mencoba semua solusi di atas tanpa hasil. SDK Facebook menyuntikkan dependensi lama yang berbenturan dengan androidX dan EDM4U tidak dapat menyelesaikannya.

Contoh di bawah ini:
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 menambahkan tampilan kartu dan plugin lokal lainnya juga menambahkannya. Jetifier tampaknya tidak melakukan apa-apa.
Perbaikan yang disarankan oleh OneSignal juga tidak menyelesaikan masalah ini.

Ya, saya terpaksa membuat versi kustom saya sendiri dari Facebook.Unity.Editor.dll sehingga tidak menyuntikkan implementasi yang bertentangan.
Tapi wow, itu tidak mudah untuk membangun SDK facebook ... tetapi berhasil pada akhirnya :)

Saya berjuang dengan masalah yang sama, namun kelas yang digandakan berbeda:

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 tampaknya tidak mengimpor perpustakaan ini.

Saya sudah mencoba trik jetifier, saya sudah mencoba membuat mainTemplate.gradle, termasuk rekanan androidx dari perpustakaan lawas, bahkan termasuk perpustakaan vectordrawable, namun saya masih selalu mendapatkan kesalahan yang sama.

mainTemplate.gradle terlihat seperti ini:

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

Ide lain apa yang bisa dilakukan? Saya pada dasarnya baru saja menambahkan facebook SDK ke proyek saya dan mendapatkan kesalahan ini sejak awal.

Saya memiliki penyelesai jar terbaru, facebook sdk dan firebase sdk.

Saya masih menggunakan metode yang sama yang saya sarankan di atas (god bless gradle properties) dan tidak pernah mengalami masalah sejak itu, satu-satunya hal yang berubah adalah saya berhenti menggunakan SDK Android Unity dan mengunduhnya sendiri dan mengubah jalurnya sesuai keinginan, menjadi dapat mengatur target ke api 30 sedikit lebih damai. Itu seharusnya tidak banyak mempengaruhi. Hal utama adalah memiliki pengaturan EDM menggunakan jetifier, patch mainTemplate, dan penyelesaian paksa sebelum Anda membangun (jika Anda memilih untuk tidak memiliki penyelesaian otomatis seperti saya). Dalam pengaturan penerbitan saya menggunakan properti gradle khusus, templat utama, manifes Android khusus (saya tidak terlalu menyentuh templat utama atau manifes Android lagi, saya membiarkannya diisi oleh edm dan pengaturan edit menu facebook '"regenerasi manifes Android". Jika Anda mendapatkannya duplikat kesalahan kelas dengan semua yang sedang dilakukan, maka Anda mungkin memiliki yang tambahan di proyek Anda yang harus Anda hapus.Jika menggunakan Adjust misalnya, Anda mungkin menyelesaikan pengarah instal dan masih memiliki yang lain di folder Plugin proyek Anda yang harus Anda hapus, tapi ya, sebagian besar waktu jika Anda menggunakan pengaturan saya menyarankan semua masalah ini cukup .. memudar.

TL;DR: Template Properti Gradle Kustom, dan tambahkan:

android.useAndroidX=true
android.enableJetifier=true

Templat Utama Kustom, biarkan EDM4U menambalnya, Jetifier aktif, Paksa penyelesaian sebelum membangun
Custom Main Manifest, biarkan Facebook Regenerate Manifest dari menu Edit Setting thingy, juga pastikan tidak ada kesalahan seperti PATH atau hal menjengkelkan apa pun yang dimiliki facebook
Saya berjanji Anda dapat membangun dengan sejuta SDK seperti yang saya lakukan setiap hari, dan saya hanya pengembang game junior acak yang terlalu banyak melakukan hal ini dan menggunakan Android Studio sampai properti gradle khusus keluar

Oke, jadi akhirnya saya menemukan masalah - saya memiliki file aar vectordrawable yang mengambang di file - ini yang menyebabkan masalah. Tidak yakin perpustakaan mana yang menyalinnya, tetapi saya telah menghapus file ini dan semua kesalahan hilang. Terima kasih atas petunjuknya :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Duke74 picture Duke74  ·  4Komentar

laijingfeng picture laijingfeng  ·  6Komentar

michelleran picture michelleran  ·  4Komentar

derwaldgeist picture derwaldgeist  ·  4Komentar

edscodeblenders picture edscodeblenders  ·  4Komentar