React-native-onesignal: Penggabungan manifes gagal saat merakit aplikasi pengujian Android

Dibuat pada 12 Jun 2019  ·  15Komentar  ·  Sumber: OneSignal/react-native-onesignal

Deskripsi

Saat merakit aplikasi pengujian Android menggunakan ./gradlew assembleAndroidTest , penggabungan manifes gagal dengan kesalahan berikut:

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

Masalah serupa dilaporkan dengan #579 pada Juli 2018 dan kemudian ditutup pada Januari 2019 tanpa resolusi yang jelas.

Lingkungan Hidup

Contoh proyek di examples/RNOneSignal@31b5242 yang menggunakan react-native-onesignal v3.2.14.

Langkah-langkah untuk mereproduksi

  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

Komentar yang paling membantu

Terima kasih atas kesabaran Anda selama kami menyelidiki masalah ini.

Semua 15 komentar

Berlari ke ini, juga.

@sonicdoe Apakah Anda menggunakan productFlavors ? Jika demikian, Anda harus mengubah perintah seperti:

buildType = "debug"
produkFlavor = "pengembangan"

./gradlew assembleDevDebugAndroidTest

Tidak, proyek contoh di examples/RNOneSignal@31b5242 (yang saya gunakan untuk mereproduksi ini) tidak menggunakan rasa produk.

Saya juga mengalami ini - pencarian google acak menunjukkan masalah ini https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/207 yang menyarankan menggunakan buildToolsVersion: 28.0.0.

Kami sudah melakukan ini, tapi kemudian saya melihat peringatan saat membangun

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

di mana proyek ini memaksanya untuk menurunkan versi ;(

Masalah pribadi saya teratasi ketika saya membangun menggunakan task-name setelah perintah gradlew (dijelaskan di atas).

FWIW, ini adalah bagian dari file 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"
            }
        }
    }
}

Terima kasih atas kesabaran Anda selama kami menyelidiki masalah ini.

Apa kabar,
Saat ini kami tidak yakin bagaimana cara memperbaikinya secara permanen. Sementara itu, Anda dapat menjalankan:
./gradlew app:assembleAndroidTest

Kami juga menyadari bahwa kami mengalami masalah dengan ./gradlew build sehingga kami membuat PR yang akan memperbaikinya juga.

Terima kasih telah membawa ini menjadi perhatian kami.

Saya bisa membuat assembleAndroidTest bekerja dengan menyuntikkan placeholder manifes ke react-native-onesignal itu sendiri (mirip dengan https://github.com/geektimecoil/react-native-onesignal/issues/579#issuecomment- 442504553) dan menghapus kelas ApplicationTest di android/src/androidTest (yang tampaknya tidak berpengaruh). Lihat cabang gradle-android-test untuk semua perubahan.

Sayangnya, saya tidak dapat memahami mengapa masalah ini terjadi dan mengapa perubahan ini diperlukan. Sejauh yang saya tahu, androidTest menyelesaikan ke pohon ketergantungan yang berbeda itulah sebabnya penggabungan manifes berperilaku berbeda dalam kasus itu.

@rgomezp Beri tahu saya jika Anda memiliki wawasan lebih lanjut dan apakah perubahan di atas akan baik-baik saja. Jika demikian, saya akan membuka permintaan tarik.

@sonicdoe ,
Terima kasih atas perbaikannya @sonicdoe! Silahkan buat PRnya

@rgomezp menambahkan pertanyaan saya di sini karena Anda menutup tiket lainnya

apakah direktori ini perlu dimasukkan dalam paket npm atau hanya dapat hidup di repo GitHub?

Karena jika jawabannya tidak, maka masalah ini selesai untuk saya.

Saya bertanya karena saya tidak tahu apa praktik yang baik tetapi saya tidak melihat paket RN lain dengan direktori ini androidTest jadi saya kira tidak ada yang menguji atau mereka tidak menyertakan tes dalam paket npm?

@mtt87 ,
Itu tidak perlu. Pembuat aslinya pasti tidak sengaja memasukkannya. Kami menghapusnya dalam rilis RN OneSignal SDK yang akan datang. Terima kasih!

Luar biasa Terima kasih

Apa kabar,
Kami akan segera merilis versi terbaru dari react-native SDK dengan perbaikan. Jika Anda ingin menguji perubahan sekarang, cukup ubah react-native-onesignal Anda di package.json Anda untuk menunjuk ke repositori ini.

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

Akan senang mendengar tanggapan Anda sebelum rilis. Bersulang!

EDIT: ABAIKAN INSTRUKSI INI SEBAGAI PLUGIN TELAH DUSUK KE NPM

Saya melihat Anda sudah merilis versi terbaru, v3.3.0 . Haruskah rilis ini mengubah sesuatu tentang masalah ini? Jika saya mengulangi langkah-langkah reproduksi dari posting asli , saya mengalami kesalahan yang sama persis.

@sonicdoe ,
Apakah Anda yakin Anda menginstalnya kembali dengan benar?

Sunting: baru saja diuji. Anda benar. Saya minta maaf di sini. Saya pikir # 791 memperbaiki ini. Saya akan berdiskusi dengan @jkasten2 tentang #789

Apakah halaman ini membantu?
0 / 5 - 0 peringkat