Chaque fois que j'exécute réactif natif run-Android tout en gardant l'émulateur en cours d'exécution, j'obtiens cette erreur. run-ios natif de react marche parfaitement bien.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
:ReactNative:Failed to parse React Native CLI configuration: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object
The current character read is 'E' with an int value of 69
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 0
Error: Invalid attribute nameLine: 16Column: 18Char: . at error (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/sax/lib/sax.js:651:10) at strictFail (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/sax/lib/sax.js:677:7) at SAXParser.write (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/sax/lib/sax.js:1313:13) at new XmlDocument (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/xmldoc/lib/xmldoc.js:261:15) at readManifest (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/@react-native-community/cli-platform-Android/build/config/readManifest.js:38:10) at Object.projectConfig (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/@react-native-community/cli-platform-Android/build/config/index.js:59:46) at Object.get project [as project] (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/index.js:114:50) at /Users/yashatreya/Desktop/Realyze/Realyze/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/config/config.js:8:452 at Array.forEach (<anonymous>) at _objectSpread (/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/config/config.js:8:392)
^
FAILURE: Build failed with an exception.
* Where:
Script '/Users/yashatreya/Desktop/Realyze/Realyze/node_modules/@react-native-community/cli-platform-Android/native_modules.gradle' line: 201
* What went wrong:
A problem occurred evaluating script.
> Failed to parse React Native CLI configuration. Expected running 'npx --quiet --no-install react-native config' command from '/Users/yashatreya/Desktop/Realyze/Realyze' directory to output valid JSON, but it didn't. This may be caused by npx resolving to a legacy global react-native binary. Please make sure to uninstall any global 'react-native' binaries: 'npm uninstall -g react-native react-native-cli' and try again
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Comme indiqué dans le message d'erreur, j'ai essayé d'exécuter npm uninstall -g react-native react-native-cli
mais cela n'a pas fonctionné.
Infos sur mon environnement:
System:
OS: macOS 10.15
CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Memory: 29.68 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.13.0 - /usr/local/bin/node
Yarn: 1.19.1 - /usr/local/bin/yarn
npm: 6.12.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5977832
Xcode: 11.0/11A420a - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: ^0.61.4 => 0.61.4
npmGlobalPackages:
react-native-cli: 2.0.1
Android/app/build.gradle ci-dessous:
apply plugin: "com.Android.application"
import com.Android.build.OutputFile
project.ext.react = [
entryFile: "index.js",
enableHermes: false, // clean and rebuild if changing
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
def jscFlavor = 'org.webkit:Android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);
Android {
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.realyze"
minSdkVersion 21
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true
}
// rootProject.ext.minSdkVersion
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'Android'
keyAlias 'androiddebugkey'
keyPassword 'Android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-Android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.Android.com/studio/build/configure-apk-splits.html
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
implementation project(':react-native-Push-notification')
implementation project(':react-native-sound')
implementation project(':react-native-audio')
implementation 'com.Android.support:multidex:2.0.1'
implementation project(':react-native-gesture-handler')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.google.firebase:firebase-auth:19.1.0'
implementation project(path: ":@react-native-firebase_auth")
implementation project(path: ":@react-native-firebase_messaging")
implementation project(path: ":@react-native-firebase_database")
implementation project(':react-native-datetimepicker')
implementation project(path: ":@react-native-firebase_firestore")
implementation project(path: ":@react-native-firebase_functions")
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/Android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
// }
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
apply from: file("../../node_modules/@react-native-community/cli-platform-Android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
Android/build.gradle ci-dessous:
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
}
repositories {
google()
jcenter()
}
dependencies {
classpath "com.Android.tools.build:gradle:3.4.2"
classpath 'com.google.gms:google-services:4.3.2'
}
}
allprojects {
repositories {
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/Android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-Android/dist")
}
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
Au départ, j'obtenais cette erreur: erreur de construction native de réaction: impossible de trouver l'implémentation de la méthode () pour les arguments [jscFlavor] sur le projet ': app' de type org.gradle.api.Project mais maintenant je reçois ce qui précède.
SOLUTION 1 (travaillé pour moi)
La solution pour moi était de supprimer la ligne suivante
apply from: file("../../node_modules/@react-native-community/cli-platform-Android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
Assurez-vous de le retirer partout. J'ai eu cette ligne dans build.gradle (app) et aussi dans settings.gradle .
Après cela, exécutez à nouveau npx react-native run-Android la console affichera l'erreur réelle, corrigera l'erreur et remettra les lignes que vous avez supprimées.
Dans mon cas, l'erreur s'est produite parce que j'utilisais une ancienne version Node et la deuxième fois.Il s'est produit que j'avais besoin de synchroniser à nouveau mon projet
SOLUTION 2
Supprimez les fichiers sur lesquels il a trouvé une erreur: "Le caractère en cours de lecture est 'E' avec une valeur int de 69"
Suppression
app\build\intermediates\signing_config\debug\out\signing-config.json
travaillé pour les autres aussi.
SOLUTION 3
Mettez à jour @ react-native-community/cli vers la dernière version.
Bon codage!
Je pense que ce problème est uniquement dans la version plus récente (0.61), j'ai eu le même problème et je viens d'utiliser l'ancienne version (0.60.0)
npx react-native init AwesomeProject --version 0.60.0
Je viens de supprimer le dossier de construction dans Android et allez dans Android puis dans PowerShell tapé ./gradlew
nettoyer puis cd..
=> npx react-native run-Android
Veuillez vous assurer que les données AndroidManifest.xml sont entre guillemets appropriés "" et non "". Cela se produit généralement lorsque nous configurons la base de données et copions-collons les dépendances.