2
votes

Incompatibilité de la version native de React - Version native: 0.59.5

Je reçois cette erreur sur le simulateur Android:

Incompatibilité de la version native de React: Version Javascript: 0.58.5 Version native: 0.59.5

J'ai mis à jour React Native, les modules, le studio Android et à peu près tout ce que je pouvais. Tout fonctionne bien sur iOS, cela ne se produit que sur Android. La construction est réussie

Package.json

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
        googlePlayServicesVersion = "15.0.1"
        androidMapsUtilsVersion = "0.5+"
    }
    repositories {
        google()
        //mavenLocal()        
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.2.0'

    }
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

/*
task wrapper(type: Wrapper) {
    gradleVersion = '4.7'
    distributionUrl = distributionUrl.replace("bin", "all")
}*/





   dependencies {
        implementation project(':react-native-firebase')
        implementation project(':react-native-gesture-handler')
        implementation fileTree(dir: "libs", include: ["*.jar"])
        implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
        implementation "com.facebook.react:react-native:+"  // From node_modules
        implementation project(':react-native-linear-gradient')
        implementation project(':react-native-maps') 
        implementation "com.google.android.gms:play-services-base:16.0.1"
        implementation project(':@react-native-community_async-storage')

        implementation ("com.google.firebase:firebase-core:16.0.7") {
            exclude group: 'com.google.android.gms'
        } 

        implementation ("com.google.firebase:firebase-auth:16.1.0") {
            exclude group: 'com.google.android.gms'
        } 

        implementation ("com.google.firebase:firebase-database:16.0.6") {
            exclude group: 'com.google.android.gms'
        }
    }

Build.gradle

{
  "name": "MyProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "@react-native-community/async-storage": "^1.3.3",
    "latlon-geohash": "^1.1.0",
    "react": "16.8.3",
    "react-native": "0.59.5",
    "react-native-firebase": "^5.2.3",
    "react-native-gesture-handler": "^1.0.16",
    "react-native-keyboard-aware-scroll-view": "^0.8.0",
    "react-native-linear-gradient": "^2.5.3",
    "react-native-maps": "^0.24.2",
    "react-native-vector-icons": "^6.4.2",
    "react-navigation": "^3.3.2",
    "react-redux": "^6.0.1",
    "redux": "^4.0.1"
  },
  "devDependencies": {
    "babel-core": "^7.0.0-bridge.0",
    "babel-jest": "24.1.0",
    "jest": "24.1.0",
    "metro-react-native-babel-preset": "0.52.0",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

J'ai essayé de fermer tous les terminaux, installation de fil, création d'un nouvel appareil Android. Je suppose que cela a à voir avec la version réelle de React Native dans Package.json, mais c'est le 0.59.5 et quand j'ai cherché dans tout le projet, je ne trouve aucune référence à 0.58.5 nulle part.

Merci Luc


6 commentaires

pouvez-vous essayer de supprimer le dossier node_modules et les fichiers package-lock.json avant d'exécuter yarn install ?


fermez votre terminal et exécutez à nouveau. ça marche.


fermez simplement l'application sur l'émulateur et réexécutez-la depuis expo ui.


stackoverflow.com/questions/47763824/…


@kenmistry si je supprime le dossier node_modules, devrai-je réinstaller à nouveau tous les modules? Je veux dire toute la configuration lors de la première installation d'un package?


@CosmicSeizure aucune autre configuration requise, je crois. Il recrée simplement le dossier node-modules.


5 Réponses :


0
votes

Assurez-vous que vous avez des versions RN dans package.json comme dans android / app / build.gradle , cela devrait ressembler à:

dans package.json

"react-native": "0.59.5",

et dans android/app/build.gradle

implémentation ("com.facebook.react: react-native: 0.59.5") {force = true }

Modifier: Pouvez-vous également vérifier que le conditionneur et l'émulateur / périphérique sont sur le même réseau et que le bundle JS est récupéré à partir des bons emplacements? Il semble que votre application ne soit pas mise à jour pendant la construction, elle est bloquée dans l'ancien code.

J'espère que cela vous aidera. Bon codage!


4 commentaires

Pouvez-vous vous assurer que le module de nœud React Native que vous utilisez a la bonne version dans son package.json?


J'ai regardé dans le package.json à l'intérieur du module de nœud React Native et il semble être correct: {"name": "react-native", "version": "0.59.5",


J'ai ajouté une section d'édition dans la réponse. Vérifiez si cela aide.


@SurajMalviya Comment vérifiez-vous si le packager et l'émulateur sont dans le même réseau? Et le bundle JS est récupéré au bon endroit?



2
votes

J'ai résolu le problème avec l'aide du forum github. Cette erreur a été causée dans mon cas en ayant Android 9 dans le simulateur. L'installation d'un nouvel appareil avec la version 8 d'Android a résolu le problème.


4 commentaires

Une solution similaire, la création d'un nouvel appareil avec une version plus récente recommandée par l'outil de l'appareil Android a également fonctionné pour moi.


@OsoGrizz Pouvez-vous préciser quel appareil et quelle version vous utilisez? J'ai essayé d'utiliser l'API Pixel2 29 avec Android 9+ (JS 0.58.5, NV 0.59.5) et son erreur de non-concordance persiste. Je suis donc toujours obligé d'utiliser Simulator Android 8.1, où cela fonctionne bien.


Je ne peux plus être sûr de la configuration que j'utilisais auparavant, mais j'utilise maintenant; API Pixel 3 XL 28 Android 9.0 (API Google), natif de réaction: 0,59,8


@CosmicSeizure face à des problèmes similaires, je suis donc curieux: qu'entendez-vous par API 29 / Android 9+? En termes de système d'exploitation pour un seul appareil, l'API 29 signifie Android 10.0 et Android 9.0 équivaudrait à l'API 28, non?



0
votes

Essayez de suivre:

package.json

googlePlayServicesVersion = "15.0.1" 
 androidMapsUtilsVersion = "0.5+"

build.gradle:

"react": "16.8.6",
"react-native": "0.60.4",
"react-native-maps": "0.25.0",


0 commentaires

1
votes

Fermez tous les terminaux et IDE et relancez-les. Cela fonctionnera


0 commentaires

0
votes

Il me restait workdir / android / app / src / main / assets / index.android.bundle de la version précédente d'une autre branche où j'utilisais l'ancien RN.

Exécution de bundle react-native --platform android --dev true --entry-file index.js --bundle-output android / app / src / main / assets / index.android.bundle --assets -dest android / app / src / main / res l'a corrigé pour moi.


0 commentaires