Facebook-sdk-for-unity: فشل البناء في Unity 2019.3.0f6 - التعارض مع Firebase SDK - تبعيات مكررة

تم إنشاؤها على ٣ فبراير ٢٠٢٠  ·  37تعليقات  ·  مصدر: facebook/facebook-sdk-for-unity

قائمة تدقيق

بيئة

  • إصدار محرر الوحدة: 2019.3.0f6
  • إصدار Unity SDK: 7.18.0 و 7.18.1
  • منصة التثبيت والإصدار: [Android] version any
  • إصدار Firebase SDK: 6.10.0
  • إصدار محلل الوحدة: 1.2.135.2

الأهداف

بناء المشروع

نتائج متوقعة

تم بناء المشروع بنجاح

النتائج الفعلية

فشل المشروع في الإنشاء بالمخرجات التالية:

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. إنشاء مشروع جديد 2019.3.0f6
  2. قم بتعيين هدف بناء المشروع على Android.
  3. استيراد Facebook SDK 7.18.0
  4. استيراد أحدث إصدار من Firebase Analytics SDK 6.10.0 إلى المشروع.
  5. قم باستيراد Unity Jar Resolver v1.2.135 إلى المشروع.
  6. تمكين mainTemplate.gradle (إعدادات المشغل -> إعدادات النشر -> تحقق من قالب gradle المخصص)
  7. انقر فوق Assets / Play Services Resolver / Android Resolver / Resolve
  8. قم بتمكين Jetifier عندما يُطلب منك ذلك
  9. بناء المشروع

أو

  1. قم بتنزيل وفتح مشروع repro الذي قمت
  2. تغيير هدف البناء إلى Android
  3. بناء المشروع

عينات وتفاصيل التعليمات البرمجية

إذا قمت بالبناء باستخدام Facebook SDK فقط ، فهذا يعمل.
إذا قمت بالبناء باستخدام Firebase SDK فقط ، فهذا يعمل.
إذا قمت بإنشاء كل من Facebook SDK و Firebase SDK ، فسوف يفشل.

لقد قمت بعمل مشروع Repro باتباع الخطوات التي ذكرتها من قبل.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view؟usp=sharing

bug

التعليق الأكثر فائدة

لقد قمت بحلها في خطوتين لـ Unity 2019.3.11f1 :

  1. انتقل إلى Edit -> Project Settings -> Player -> Publishing settings -> Tick Custom Properties Gradle Template
  2. انتقل إلى gradleTemplate.properties الذي تم إنشاؤه حديثًا وأضف هذه السطور إلى الأعلى:
    `` خصائص
    android.useAndroidX = صحيح
    android.enableJetifier = صحيح

ال 37 كومينتر

مرحبا KylinChang ، هل هناك أي تحديثات على هذا؟

لسنا قادرين على بناء المشروع على Unity 2019.3.
على Android بسبب هذه المشكلة ، وعلى iOS بسبب # 359.

مرحبًا mcrvaz ، هل يمكنك تجربة الإصدار 7.18.1؟

تواجه نفس المشكلة مع Facebook SDK v7.18.1 أيضًا.

تواجه نفس المشكلة مع Facebook SDK v7.18.1. لا يمكن بناء لعبتنا الآن. Firebase أو Facebook تعطيل مؤقتًا.

kashiftasneempro هل حذفت المكوّن الإضافي القديم أولاً؟

kashiftasneempro هل حذفت المكوّن الإضافي القديم أولاً؟

نعم فعلت.

أنا أواجه نفس المشكلة ، هل أحرز أي تقدم أي تقدم في هذا الشأن؟ يبدو أن androidx مقابل دعم مكتبة الصراع؟

في الواقع: لم أختبر هذا بشكل كامل حتى الآن ، لكنني أزيل

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

من build.gradle يجعلني أقوم بإنشاء ملفات apk مرة أخرى. سأقوم ببعض الاختبارات لمعرفة ما إذا كان هناك أي شيء معطل.

التحديث 1: يبدو أن الأشياء تعمل من ناحيتي ، ولا يزال Facebook يعمل وأنا أحصل على تهيئة رمز دفع Firebase بشكل صحيح.

التحديث 2: لقد نسيت أن أذكر أنه يجب علي أيضًا إزالة سطر في ملف Firebase AndroidManifest الذي يستخدم sdk ... 14
عند إزالة هذين السطرين ، كل شيء يعمل بشكل جيد. لقد تمكنت من اختبار كل ما يتعلق بحالات الاستخدام الخاصة بي. نأمل أن يساعد هذا الآخرين.

في الواقع: لم أختبر هذا بشكل كامل حتى الآن ، لكنني أزيل

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

من build.gradle يجعلني أقوم بإنشاء ملفات apk مرة أخرى. سأقوم ببعض الاختبارات لمعرفة ما إذا كان هناك أي شيء معطل.

التحديث 1: يبدو أن الأشياء تعمل من ناحيتي ، ولا يزال Facebook يعمل وأنا أحصل على تهيئة رمز دفع Firebase بشكل صحيح.

التحديث 2: لقد نسيت أن أذكر أنه يجب علي أيضًا إزالة سطر في ملف Firebase AndroidManifest الذي يستخدم sdk ... 14
عند إزالة هذين السطرين ، كل شيء يعمل بشكل جيد. لقد تمكنت من اختبار كل ما يتعلق بحالات الاستخدام الخاصة بي. نأمل أن يساعد هذا الآخرين.

هل تعمل في الوحدة؟

الوحدة لها mainTemplate.gradle وليس build.gradle.

نعم ، هذا هو Unity ، بدلاً من إنشاء ملف apk / aab من المحرر ، أقوم بالتصدير إلى Android Studio حتى أتمكن من العمل من خلال التبعيات. يساعد كثيرًا عند تصحيح أخطاء مثل هذه.

مرحبًا ncinoadam ، ما هي وحدات

ncinoadamkashiftasneempro تمكنت من حل هذا من خلال تمكين 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 ، ما هي وحدات

أنا أستخدم حاليًا وحدة المراسلة فقط ، ولكن لن يكون من الصعب اكتشاف التعارضات وإصلاحها للآخرين أيضًا.

يمكن حل المشكلة عن طريق تصدير المشروع والبناء باستخدام Android Studio ، ثم الترحيل باستخدام AndroidX عن طريق استبدال التبعيات القديمة تقريبًا التي تتبع hex المذكور. ولكن هذه ليست الطريقة التي من المفترض أن تكون عليها ، فإن التعارضات الآن تدور حول الحزمة لا تزال تستخدم التبعيات القديمة بينما يتم تمكين AndroidX بعد Force Resolve ، لذلك نأمل أن يكون هناك حل متاح أو طريقة رسمية للبناء بدون تصدير المشروع.

في الواقع: لم أختبر هذا بشكل كامل حتى الآن ، لكنني أزيل

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

من build.gradle يجعلني أقوم بإنشاء ملفات apk مرة أخرى. سأقوم ببعض الاختبارات لمعرفة ما إذا كان هناك أي شيء معطل.

التحديث 1: يبدو أن الأشياء تعمل من ناحيتي ، ولا يزال Facebook يعمل وأنا أحصل على تهيئة رمز دفع Firebase بشكل صحيح.

التحديث 2: لقد نسيت أن أذكر أنه يجب علي أيضًا إزالة سطر في ملف Firebase AndroidManifest الذي يستخدم sdk ... 14
عند إزالة هذين السطرين ، كل شيء يعمل بشكل جيد. لقد تمكنت من اختبار كل ما يتعلق بحالات الاستخدام الخاصة بي. نأمل أن يساعد هذا الآخرين.

شكرًا ncinoadam ، لقد

أتفق مع GunLengend ، إنه اختراق يجب

تحرير: أريد أيضًا أن أذكر أن هذه المشكلة لا علاقة لها بـ Facebook SDK حيث لا أمتلكها في مشروعي. لقد فتحت مشكلة هنا (https://github.com/firebase/quickstart-unity/issues/607) لأن لدي إلى حد كبير نفس إخراج سجلات Unity وقمت بإصلاح المشكلة مع ما ذكره ncinoadam ، لذلك يبدو أن هذا أكثر من شيء Firebase

ما أفكر فيه الآن ليس فقط مشكلة 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 والتي يبدو أنها تعيد توزيع مكتبات جافا بدلاً من التحديث إلى محلل Android. لقد تخلصت من Mapbox وبدأت في استخدام خرائط Google ، جيد جدًا هناك ، ولكن بعد ذلك قدمت إصدارًا قديمًا من Facebook SDK لأن توثيق أحد أصولي يطلب الإصدار الأقدم وكان لدي عدة فئات مكررة عند تقديمه. لذلك حصلت على Facebook SDK الجديد واضطررت إلى تعديل الكود في الأصل الذي يتطلب الإصدار الأقدم. حاليًا لديّ فقط Firebase Authentication ، ولكن يبدو أنه لا يزال يستخدم androidx.core.core-1.0.0 وكان هذا هو المكان الذي كانت فيه معظم الفئات المكررة بالنسبة لي. نأمل أن يساعد هذا

لدي نفس التعارض عند إضافة FB إلى مشروعي حيث لدي AdMob

تطبيق السمة الدعم: دعم التوافق: 28.0.0] AndroidManifest. xml: 22 : 18-91

بعد اضافة المقترح
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

تلقيت

java.lang.RuntimeException: نسخة مكررة android.support.customtabs.ICustomTabs

و اكثر ...
لدي أحدث إصدارات من كل SDKs والوحدة.

لا أعرف لماذا أعطيتني إبهامًا وفضلاً عن ذلك لماذا أرغب في مساعدتك بعد القيام بذلك ، لكنني أقترح عليك حذف com.android. support: customtabs : 28.0.0 ، مخزنة عادةً في Assets / Plugins / Android / ومعرفة ما إذا كان ذلك سيؤدي إلى حل مشكلتك.

المشكلة هي أنني أستخدم mainTemplate.gradle بدلاً من وجود الكثير من libs في Assets / Plugins / Android / folder. (مساحة محدودة في المستودع).
لقد قمت بإزالة كل 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 بإصلاحها ، لكن Unity's Jetifier لا يعمل مع 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 -> Tick Custom Properties Gradle Template
  2. انتقل إلى gradleTemplate.properties الذي تم إنشاؤه حديثًا وأضف هذه السطور إلى الأعلى:
    `` خصائص
    android.useAndroidX = صحيح
    android.enableJetifier = صحيح

في Unity 2019.2.21 ، لا تزال أخطاء الفئة المكررة موجودة حتى مع تمكين jetfiier كما هو موضح أدناه

([rootProject] + (rootProject.subprojects as List)). كل {
تحويلة {
it.setProperty ("android.useAndroidX" ، صحيح)
it.setProperty ("android.enableJetifier"، true)
}
}

jackatfp هل جربت حل
https://documentation.onesignal.com/docs/troubleshooting-unity#unity -20193-or-newer

إنه القسم الذي يتعين عليك فيه إضافة ملف يسمى Assets / Plugins / Android / settingsTemplate.gradle.

أحبطتني هذه المشكلة بلا نهاية وكنت على وشك أن أعزم نفسي على البناء من Android Studio. فقط هذا الحل كان يعمل باستمرار بالنسبة لي (اعتقدت أن الحل السابق نجح لكنه توقف عن العمل بالنسبة لي عندما أضفت بعض المكونات الإضافية الأخرى إلى مشروعي) ومن المنطقي أن يكون ذلك منطقيًا: من الواضح أن نظام التدرج لم يكن يلتقط الطائرة من معالج البريد Unity والإعدادات ولكن من الواضح أن jetifier كان يعمل لأنه كان يعمل في Android Studio الذي يستخدم gradle. لذا ، يبدو أن الحل الذي يعتمد على التدرج يبدو منطقيًا.

على أي حال ، لقد نجحت معي وكنت منزعجًا جدًا وسعيدًا لإيجاد حل وآمل أن يكون مناسبًا لك. يرجى محاولة إعطائها! حظا سعيدا.

أنت محق في أنك لم تكن تلتقط الطائرة في هذه الحالة ، لكنك لست بحاجة إلى استخدام حل OneSignal بعد الآن.

باستخدام أحدث إصدار رسمي 2019.3 (ملكي هو 2019.3.12f1 atm) ، يمكنك فقط استخدام قالب خصائص Gradle المخصص أعلى قالب Gradle الرئيسي ، وإضافة:
android.useAndroidX=true
android.enableJetifier=true
إلى ملف gradleTemplate.properties الذي تم إنشاؤه حديثًا.

لقد كنت أقوم بالتصدير إلى Android studio للبناء مع جميع حزم SDK التي يريدها الناشر وأعمل من خلال مآسي أخطاء إنشاء Android منذ ذلك الحين ، بصفتي مطورًا مبتدئًا أعتقد أنني واجهت كل مشكلة ، لكن الآن يمكنني أخيرًا البناء من داخل Unity. لم يكن Jetifier يعمل مع Facebook SDK بشكل صحيح باستثناء Android studio ، لذلك إذا استخدمت ما يكفي من المكونات الإضافية التي تم ترحيلها من AndroidX ، فسيكون من الصعب الإنشاء من داخل Unity دون بعض التغييرات الخارقة.

عادةً ما يتعين علي تغيير Plugins / Android / AndroidManifest.xml للحصول على هذا في علامة التطبيق:
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
أيضًا xmlns:tools="http://schemas.android.com/tools" في علامة البيان

نعم ، إنها سلسلة عشوائية لأنني لست متأكدًا من الغرض من ذلك ولكنها تعمل وتصلح خطأ إنشاء الدمج الواضح ، حسنًا.

يمكنني الآن البناء باستخدام Ironsource (العديد من المحولات معها) ، Facebook SDK ، GameAnalytics ، Adjust ، Firebase ، أي شيء آخر. بشكل أساسي ، ما عليك سوى الحصول على أحدث Unity Jar Resolver ، والتحقق من الإعدادات ، وإزالة الحل التلقائي ، وإزالة الحل عند الإنشاء ، وتعيين قالب صيانة التصحيح ، واستخدام jetifier إلى true ، وإجبار الحل ، وإضافة أي تبعيات / إعادة شراء إضافية تريدها ، وتنفيذ خدعة gradleproperties ، والبناء داخل Unity ، تم .

@ doom-goober نعم ، لقد جربنا كل شيء يتضمن الحل الذي ذكرته ولكن لا يزال غير ناجح

@ doom-goober نعم ، لقد جربنا كل شيء يتضمن الحل الذي ذكرته ولكن لا يزال غير ناجح

هل جربت خيار

هذا حدث معي أيضا. لقد جربت جميع الحلول المذكورة أعلاه دون نجاح. تقوم Facebook SDK بحقن التبعيات القديمة التي تتعارض مع androidX ولا يستطيع EDM4U حلها.

مثال أدناه:
implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:26.0.2' // Assets/Packages/XXX.CustomerSupport/Helpshift/Editor/HelpshiftDependencies.xml:9

أضاف Facebook Cardview وأضافه مكون إضافي محلي آخر أيضًا. يبدو أن Jetifier لا يفعل شيئًا.
الإصلاح الذي اقترحه OneSignal أيضًا لا يحل هذه المشكلة.

نعم ، لقد لجأت إلى إنشاء نسختي المخصصة من Facebook.Unity.Editor.dll بحيث لا تضخ التطبيقات المتضاربة.
لكن واو ، لم يكن من السهل إنشاء facebook SDK ... ولكن تم الانتهاء منه في النهاية :)

أنا أعاني من نفس المشكلة ، ولكن الصف المكرر مختلف:

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

لا يبدو أن Facebook يستورد هذه المكتبة.

لقد جربت حيل jetifier ، لقد حاولت إنشاء mainTemplate.gradle ، بما في ذلك نظائر androidx للمكتبات القديمة ، حتى بما في ذلك مكتبة vectordrawable ، ومع ذلك ما زلت أتلقى نفس الخطأ دائمًا.

mainTemplate.gradle يشبه هذا:

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

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

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

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

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

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

    lintOptions {
        abortOnError false
    }

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

أفكار أخرى ما الذي يمكن عمله؟ لقد قمت للتو بإضافة facebook sdk إلى مشروعي وحصلت على هذا الخطأ منذ البداية.

لدي أحدث محلل جرة ، facebook sdk و firebase sdk.

ما زلت أستخدم نفس الطريقة التي اقترحتها أعلاه (بارك الله في خصائص gradle) ولم أواجه مشكلات منذ ذلك الحين ، فقط الأشياء التي تغيرت هي أنني توقفت عن استخدام Unity's Android SDK وقمت بتنزيله بنفسي وغيرت المسار إليه في التفضيل ، قادر على ضبط الهدف على api 30 بشكل أكثر سلامًا. لا ينبغي أن يؤثر ذلك كثيرًا. الشيء الرئيسي هو أن تكون إعدادات EDM تستخدم jetifier ، وترقيع القالب الرئيسي ، وحل القوة قبل البناء (إذا كنت تفضل عدم وجود حل تلقائي مثلي). في إعدادات النشر ، أستخدم خصائص gradle مخصصة ، أو نموذجًا رئيسيًا ، أو بيان android مخصصًا (لم أعد حقًا ألمس النموذج الرئيسي أو بيان android بعد الآن ، فأنا أتركها يتم ملؤها بواسطة إعدادات تحرير قائمة edm و facebook "إعادة إنشاء بيان android". إذا حصلت على تكرار خطأ في الفصل مع كل ما يتم القيام به ، فمن المحتمل أن يكون لديك أخطاء إضافية في مشروعك يجب عليك إزالتها. إذا كنت تستخدم Adjust على سبيل المثال ، فقد تقوم بحل مرجع التثبيت ولا يزال لديك واحد آخر في مجلد الإضافات الخاص بالمشروع موجود هناك يجب عليك حذفه ، لكن نعم ، في معظم الأحيان ، إذا كنت تستخدم الإعدادات التي اقترحتها كل هذه المشكلات ببساطة .. تتلاشى.

TL ؛ DR: قالب خصائص Gradle المخصص ، وأضف:

android.useAndroidX=true
android.enableJetifier=true

قالب رئيسي مخصص ، دع EDM4U يصححه ، تشغيل Jetifier ، فرض الحل قبل الإنشاء
البيان الرئيسي المخصص ، دع Facebook Regenerate Manifest من قائمته ، قم بتعديل الإعدادات ، تأكد أيضًا من عدم وجود أخطاء مثل PATH أو أي شيء مزعج يحتوي على facebook
أعدك أنه يمكنك البناء باستخدام مليون sdks كما أفعل يوميًا ، وأنا مجرد مطور ألعاب مبتدئ عشوائي مر بهذه الأشياء كثيرًا ولجأ إلى Android Studio حتى ظهرت خصائص gradle المخصصة

حسنًا ، لقد وجدت أخيرًا مشكلة - كان لدي ملف aar قابل للرسم يتحرك في الملفات - كان هذا يسبب المشكلة. لست متأكدًا من المكتبة التي نسختها ، لكنني أزلت هذا الملف واختفت جميع الأخطاء. شكرا للتلميحات على أي حال :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات