React Native на Android: невозможно определить текущий символ, это не строка, число, массив или объект - PullRequest
2 голосов
/ 15 октября 2019

Я создаю новое приложение и вставляю старый код, когда я строю приложение, появляется эта ошибка:

Скрипт 'C: \ Users \ nameuser \ Desktop \ nameapp \ node_modules @ response-native-community \ cli-platform-android \ native_modules.gradle' строка: 191

Что пошло не так:

Возникла проблема при оценке настроек ' nameapp '.

Невозможно определить текущий символ, это не строка, число, массив или объект

Текущее чтение символа - 'i' со значением int 105
Невозможно определить текущий символ, это не строка, число, массив или объект
номер строки 1
номер индекса 0
info Запустите «response-native --help», чтобы просмотреть список всех доступных команд.

С помощью команды act-native info У меня есть текущая ситуация:

info
  React Native Environment Info:
    System:
      OS: Windows 10
      CPU: (8) x64 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
      Memory: 6.46 GB / 15.85 GB
    Binaries:
      Yarn: 1.15.2 - C:\laragon\bin\nodejs\node-v11\yarn.CMD
      npm: 6.12.0 - C:\Program Files\nodejs\npm.CMD
    IDEs:
      Android Studio: Version  3.5.0.0 AI-191.8026.42.35.5900203

А на package.json :

{
  "name": "nameapp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "@react-native-community/cli-platform-android": "^2.9.0",
    "axios": "^0.18.0",
    "haversine": "^1.1.0",
    "moment": "^2.22.2",
    "react": "16.6.3",
    "react-native": "^0.59.8",
    "react-native-actionsheet": "^2.4.2",
    "react-native-auto-height-image": "^1.1.0",
    "react-native-cached-image": "^1.4.3",
    "react-native-cli": "^2.0.1",
    "react-native-fbsdk": "^0.8.0",
    "react-native-global-font": "^1.0.2",
    "react-native-google-places": "^3.0.5",
    "react-native-image-crop-picker": "^0.24.1",
    "react-native-image-pan-zoom": "^2.1.10",
    "react-native-image-placeholder": "^1.0.14",
    "react-native-iphone-x-helper": "^1.2.0",
    "react-native-keyboard-manager": "^4.0.13-10",
    "react-native-maps": "github:react-community/react-native-maps",
    "react-native-maps-super-cluster": "^1.4.1",
    "react-native-modal-datetime-picker": "^5.1.0",
    "react-native-open-maps": "^0.3.3",
    "react-native-progress": "^3.4.0",
    "react-native-push-notification": "^3.1.2",
    "react-native-router-flux": "^4.0.6",
    "react-native-share": "^1.2.1",
    "react-native-snap-carousel": "^3.7.4",
    "react-native-swiper": "^1.5.13",
    "react-native-vector-icons": "^4.6.0",
    "react-native-view-shot": "^2.5.0",
    "react-redux": "^5.0.7",
    "redux": "^3.7.2",
    "redux-persist": "^4.10.1",
    "redux-persist-transform-filter": "0.0.15",
    "redux-thunk": "^2.2.0"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.51.1",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  },
  "rnpm": {
    "assets": [
      "./src/fonts"
    ]
  }
}

Спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 12 ноября 2019

Проблема в том, что react-native-community@^2.0.0 совместим только с react-native@^0.59.0. ( документ )

Вам необходимо обновить react-native или понизить рейтинг react-native-community

0 голосов
/ 14 ноября 2019

Я потратил некоторое время на это. В итоге я просто удалил следующие 2 файла, очистил и перестроил.

app\build\intermediates\signing_config\debug\out\signing-config.json
app\build\intermediates\signing_config\release\out\signing-config.json
0 голосов
/ 16 октября 2019

Процесс сборки выполняет:

npx --quiet response-native config или npx.cmd --quiet реагировать-native config

Эта команда, если вы выполняете ее в корневом каталогеВаш проект выдаст вывод JSON (если все настроено правильно).

Затем вывод JSON анализируется в скрипте gradle, на который вы ссылались. Когда все настроено неправильно, th npx --quiet response-native config ничего не выдаст или выведет неверный вывод. Таким образом, синтаксический анализ JSON (в строке 191) завершится неудачей.

Весь этот механизм вызова 'npx --quiet react-native config' используется в последней версии response-native, так что он будет автоматически 'свяжите 'все нативные пакеты, которые есть в вашем package.json, в ваше Java-приложение для Android. (он в основном внедряет во время компиляции вашего приложения имена всех этих пакетов).

-

К сожалению, не существует ни одного «обходного пути», который бы помог вам решить эту проблему. У вас может быть несовпадение (или неправильная настройка)

  • app / build.gradle
  • settings.gradle
  • build.gradle
  • версии@act-native / community / cli в вашем пакете.json
  • версии реактивной системы, работающей с определенной версией community-cli
  • act-native.config.js

Лучшее, что я мог бы порекомендовать на этом этапе, - это обновить его до последней версии React, которую вы можете себе позволить, а затем использовать

https://github.com/react-native-community/rn-diff-purge

, чтобы выяснить все необходимые изменения. сделать вышеупомянутые файлы конфигурации между версией, в которой он работал, и версией RN, в которой он перестал работать.


Если все не удалось, попробуйте отладить native_modules.gradle. Перейдите туда и вставьте:

 this.logger.warn("cmd: ${command}, result: ${reactNativeConfigOutput}");

куда-нибудь после оператора, который инициализирует строковую переменную activNativeConfigOutput.

Этот оператор журнала распечатает команду и выходные данные той команды, которая была выполнена этимautolinking machinery.

Так что, когда вы запускаете gradlew build
, вы должны увидеть какой-то вывод.

В моем случае команда (cmd) была:

npx.cmd --quiet react-native config

иresponseNativeConfigOutput был:

 info Run "react-native --help" to see a list of all available commands

. Вы можете видеть, что выход был , а не действительным json, и первым символом был 'i', и выходной синтаксический анализ JSON (который используется в native_modules. gradle) выдал ошибку, которая жаловалась на то, что «я» не является действительным символом

...