React-native-onesignal: فشل دمج البيان عند تجميع تطبيق اختبار Android

تم إنشاؤها على ١٢ يونيو ٢٠١٩  ·  15تعليقات  ·  مصدر: OneSignal/react-native-onesignal

وصف

عند تجميع تطبيق اختبار Android باستخدام ./gradlew assembleAndroidTest ، يفشل دمج البيان مع ظهور الأخطاء التالية:

> Task :react-native-onesignal:processDebugAndroidTestManifest FAILED
/…/react-native-onesignal/examples/RNOneSignal/node_modules/react-native-onesignal/android/build/intermediates/tmp/manifest/androidTest/debug/manifestMerger8422387923641009676.xml Error:
        Attribute meta-data#onesignal_app_id<strong i="9">@value</strong> at manifestMerger8422387923641009676.xml requires a placeholder substitution but no value for <onesignal_app_id> is provided.
/…/react-native-onesignal/examples/RNOneSignal/node_modules/react-native-onesignal/android/build/intermediates/tmp/manifest/androidTest/debug/manifestMerger8422387923641009676.xml Error:
        Attribute meta-data#onesignal_google_project_number<strong i="10">@value</strong> at manifestMerger8422387923641009676.xml requires a placeholder substitution but no value for <onesignal_google_project_number> is provided.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.

تم الإبلاغ عن مشكلة مماثلة مع الرقم 579 في يوليو 2018 وتم إغلاقها لاحقًا في يناير 2019 دون أي حل واضح.

بيئة

مشروع المثال في examples/RNOneSignal@31b5242 والذي يستخدم رد فعل أصلي واحد إشارة v3.2.14.

خطوات التكاثر

  1. git clone https://github.com/geektimecoil/react-native-onesignal.git
  2. cd react-native-onesignal
  3. git checkout 31b52420c807c22405e70b44800e20f3a8e3456e
  4. cd examples/RNOneSignal
  5. yarn
  6. cd android
  7. ./gradlew assembleAndroidTest
Android Help Wanted

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

نشكرك على سعة صدرك أثناء التحقيق في المشكلة.

ال 15 كومينتر

الوقوع في هذا ، أيضا.

sonicdoe هل تستخدم productFlavors ؟ إذا كان الأمر كذلك ، فستحتاج إلى تغيير الأمر مثل:

buildType = "تصحيح"
productFlavor = "dev"

./gradlew assembleDevDebugAndroidTest

لا ، نموذج المشروع في examples/RNOneSignal@31b5242 (الذي استخدمته لإعادة إنتاج هذا) لا يستخدم نكهات المنتج.

أنا أواجه هذا أيضًا - أظهر بحث Google العشوائي هذه المشكلة https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/207 مما يشير إلى استخدام buildToolsVersion: 28.0.0.

لقد فعلنا هذا بالفعل ، ولكن بعد ذلك لاحظت تحذيرًا أثناء الإنشاء

<br i="8"/> OneSignalPlugin: WARNING: OneSignalPlugin: Downgraded 'com.android.support:28.0.0' -> 27.+ to prevent compile errors! Recommend updating your project's compileSdkVersion!<br i="9"/>

حيث يجبره هذا المشروع على خفض التصنيف ؛ (

تم حل مشكلتي الشخصية عندما أنشأت باستخدام الأمر المناسب task-name بعد الأمر gradlew (الموصوف أعلاه).

FWIW ، هنا جزء من ملف android/build.gradle :

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 28
                buildToolsVersion '28.0.3'
            }
        }
    }
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "28.0.0"
            }
        }
    }
}

نشكرك على سعة صدرك أثناء التحقيق في المشكلة.

هودي y'all،
لسنا متأكدين حاليًا من كيفية إصلاح هذا بشكل دائم. في غضون ذلك ، يمكنك تشغيل:
./gradlew app:assembleAndroidTest

لقد أدركنا أيضًا أننا نواجه مشكلات مع ./gradlew build لذلك نحن ننشئ علاقات عامة من شأنها إصلاح هذا أيضًا.

شكرا للتنبيه.

لقد تمكنت من الحصول على assembleAndroidTest للعمل عن طريق حقن العناصر النائبة للبيان في رد فعل - أصلية - إشارة واحدة (على غرار https://github.com/geektimecoil/react-native-onesignal/issues/579#issuecomment- 442504553) وإزالة فئة ApplicationTest في android/src/androidTest (والذي يبدو أنه ليس له أي تأثير على أي حال). راجع فرعي gradle-android-test لجميع التغييرات.

لسوء الحظ ، لم أتمكن من معرفة سبب حدوث هذه المشكلة وسبب ضرورة هذه التغييرات. بقدر ما يمكن أن أكتشف ، androidTest يتحول إلى شجرة تبعية مختلفة وهذا هو السبب في أن الاندماج الظاهر يتصرف بشكل مختلف في هذه الحالة.

rgomezp اسمحوا لي أن أعرف إذا كان لديك المزيد من البصيرة وما إذا كانت التغييرات المذكورة أعلاه ستكون على ما يرام. إذا كان الأمر كذلك ، فسأفتح طلب سحب.

sonicdoe ،
شكرا لإصلاحsonicdoe! الرجاء إنشاء العلاقات العامة

rgomezp إضافة سؤالي هنا منذ أن أغلقت التذكرة الأخرى

هل هذا الدليل ضروري ليتم تضمينه في حزمة npm أم أنه يمكن أن يعيش فقط في GitHub repo؟

لأنه إذا كانت الإجابة لا ، فقد تم حل هذه المشكلة بالنسبة لي.

أنا أسأل لأنني لا أعرف ما هي الممارسات الجيدة ولكني لا أرى حزم RN أخرى مع هذا الدليل androidTest لذلك أعتقد إما أن لا أحد يقوم باختبار أو أنها لا تتضمن اختبارات في حزمة npm؟

@ mtt87 ،
ليس من الضروري. يجب أن يكون المبدعون الأصليون قد قاموا بتضمينه عن طريق الخطأ. نحن بصدد إزالته في إصدار RN OneSignal SDK القادم. شكرا!

رائع 😄 شكرا لك

هودي y'all،
سنصدر أحدث إصدار من SDK للتفاعل الأصلي مع الإصلاحات قريبًا جدًا. إذا كنت ترغب في اختبار التغييرات الآن ، فما عليك سوى تغيير إشارة رد فعلك الأصلية في package.json للإشارة إلى هذا المستودع.

"react-native-onesignal":"geektimecoil/react-native-onesignal"

أحب سماع ملاحظاتك قبل الإصدار. هتافات!

تحرير: تجاهل هذه التعليمات حيث تم دفع PLUGIN إلى NPM

أرى أنك قمت بالفعل بإصدار أحدث إصدار ، v3.3.0 . هل يجب أن يغير هذا الإصدار أي شيء بخصوص هذه المشكلة؟ إذا كررت خطوات الاستنساخ من المنشور الأصلي ، فسأواجه نفس الخطأ بالضبط.

sonicdoe ،
هل أنت متأكد من إعادة تثبيته بشكل صحيح؟

تحرير: اختبار للتو. انت على حق. اعتذاري هنا. اعتقدت أن # 791 أصلح هذا. سأناقش مع @ jkasten2 بخصوص # 789

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