React-native-onesignal: La fusion manifeste échoue lors de l'assemblage de l'application de test Android

Créé le 12 juin 2019  ·  15Commentaires  ·  Source: OneSignal/react-native-onesignal

La description

Lors de l'assemblage de l'application de test Android à l'aide de ./gradlew assembleAndroidTest , la fusion du manifeste échoue avec les erreurs suivantes :

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

Un problème similaire a été signalé avec le numéro 579 en juillet 2018 et a ensuite été fermé en janvier 2019 sans aucune résolution apparente.

Environnement

L'exemple de projet à examples/RNOneSignal@31b5242 qui utilise react-native-onesignal v3.2.14.

Étapes à reproduire

  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

Commentaire le plus utile

Merci de votre patience pendant que nous étudions le problème.

Tous les 15 commentaires

Courir là-dessus aussi.

@sonicdoe Utilisez -vous productFlavors ? Si c'est le cas, vous devrez modifier la commande comme :

buildType = "déboguer"
productFlavor = "dev"

./gradlew assembleDevDebugAndroidTest

Non, l'exemple de projet à examples/RNOneSignal@31b5242 (que j'ai utilisé pour reproduire cela) n'utilise pas de saveurs de produits.

Je rencontre également cela - une recherche google aléatoire a montré ce problème https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/207 qui suggère d'utiliser buildToolsVersion: 28.0.0.

Nous le faisons déjà, mais j'ai remarqué un avertissement lors de la construction

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

où ce projet le force à rétrograder ;(

Mon problème personnel a été résolu lorsque j'ai construit en utilisant le bon task-name après la commande gradlew (décrite ci-dessus).

FWIW, voici une partie de mon fichier 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"
            }
        }
    }
}

Merci de votre patience pendant que nous étudions le problème.

Salut à tous,
Nous ne savons pas encore comment résoudre définitivement ce problème. En attendant, vous pouvez exécuter :
./gradlew app:assembleAndroidTest

Nous avons également réalisé que nous rencontrions des problèmes avec ./gradlew build , nous créons donc un PR qui résoudra également ce problème.

Merci d'avoir porté cela à notre attention.

J'ai pu faire fonctionner assembleAndroidTest en injectant les espaces réservés du manifeste dans react-native-onesignal lui-même (similaire à https://github.com/geektimecoil/react-native-onesignal/issues/579#issuecomment- 442504553) et en supprimant la classe ApplicationTest dans android/src/androidTest (ce qui semble n'avoir aucun effet de toute façon). Voir ma branche gradle-android-test pour tous les changements.

Malheureusement, je n'ai pas pu comprendre pourquoi ce problème se produit et pourquoi ces changements sont nécessaires. Pour autant que j'ai pu le savoir, androidTest résout en un arbre de dépendance différent, c'est pourquoi la fusion manifeste se comporte différemment dans ce cas.

@rgomezp Faites-moi savoir si vous avez plus d'informations et si les modifications ci-dessus seraient acceptables. Si c'est le cas, j'ouvrirais une pull request.

@sonicdoe ,
Merci pour la correction @sonicdoe ! Veuillez créer le PR

@rgomezp ajoutant ma question ici depuis que vous avez fermé l'autre ticket

ce répertoire doit-il être inclus dans le package npm ou ne peut-il vivre que dans le référentiel GitHub ?

Parce que si la réponse est non, alors ce problème est résolu pour moi.

Je demande parce que je ne sais pas quelles sont les bonnes pratiques mais je ne vois pas d'autres packages RN avec ce répertoire androidTest donc je suppose que personne ne teste ou qu'ils n'incluent pas de tests dans le package npm?

@mtt87 ,
Ce n'est pas nécessaire. Les créateurs originaux doivent l'avoir inclus accidentellement. Nous le supprimons dans la prochaine version du SDK RN OneSignal. Merci!

Fantastique 😄 Merci

Salut à tous,
Nous publierons très bientôt la dernière version du SDK réactif natif avec des correctifs. Si vous souhaitez tester les modifications maintenant, modifiez simplement votre react-native-onesignal dans votre package.json pour pointer vers ce référentiel.

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

J'aimerais entendre vos commentaires avant la sortie. Acclamations!

EDIT : IGNOREZ CES INSTRUCTIONS CAR LE PLUGIN A ÉTÉ POUSSÉ SUR NPM

Je vois que vous avez déjà publié la dernière version, v3.3.0 . Cette version devrait-elle changer quelque chose à propos de ce problème ? Si je répète les étapes de reproduction du message d'origine , je rencontre exactement la même erreur.

@sonicdoe ,
Es-tu sûr de l'avoir réinstallé correctement ?

Edit : je viens de tester. Vous avez raison. Mes excuses ici. Je pensais que le #791 avait corrigé ça. Je discuterai avec @jkasten2 concernant le #789

Cette page vous a été utile?
0 / 5 - 0 notes