Я пытаюсь скомпилировать демо «кухонная раковина» для «реакции-натива»:
NativeBase-KitchenSink
, и я следовалследующие ссылки уже:
Решение для «React native: проект Android не найден. Может быть, сначала запустит реагирующий native android?»
Решение для «Expo»:Не удается найти модуль LogReporter "
То есть от установки 'npm' до установки необходимых инструментов с использованием 'Yarn'.
И вот я сам застрял:
а.Я запускаю команду npm install
в «корневом каталоге» этого проекта.
b.Затем я запускаю expo start
и вижу, что проблемы, рассмотренные в ссылках 1 и 2., исчезли.
c.Затем, когда браузер работает, я выдаю expo build:android
Появляется следующая ошибка:
[11:14:44] Checking if current build exists...
[11:14:48] No currently active or previous builds for this project.
[11:14:50] Publishing to channel 'default'...
[11:14:56] Building iOS bundle
[11:15:09] Building Android bundle
[11:15:20] Analyzing assets
[11:15:27] Uploading assets
[11:15:27] No assets to upload, skipped.
[11:15:27] Processing asset bundle patterns:
[11:15:27] - D:\Projects\ReactNativeProjects\AwesomeProject\**\*
[11:15:27] Cannot read property 'forEach' of undefined
[11:15:27] TypeError: Cannot read property 'forEach' of undefined
at C:\xdl@51.4.0\src\Project.js:903:26
at Generator.next (<anonymous>)
at step (C:\Users\hp\AppData\Roaming\npm\node_modules\expo-cli\node_modules\xdl\build\Project.js:2033:191)
at C:\Users\hp\AppData\Roaming\npm\node_modules\expo-cli\node_modules\xdl\build\Project.js:2033:361
Пожалуйста, помогите мне узнать, где я ошибаюсь?В некоторых сообщениях говорится, что код правильный.
[EDIT]:
Я также сделал что-то новое в своем app.json, непосредственно перед выполнением команды react-native eject
, для создания папок Android и iOS:
(Примечание: вводить команду react-native eject
необязательно, так как это приведет к постоянным изменениям в соответствии с документацией)
{
"expo": {
"name": "AwesomeProject",
"description": "A Kitchen Sink project.",
"slug": "AwesomeProject",
"privacy": "public",
"sdkVersion": "30.0.0",
"platforms": [
"ios",
"android"
],
"ios": {
"supportsTablet": true
},
"android": {
"package": "com.abhsax.first"
},
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/logo.png",
"splash": {
"image": "./assets/splashscreen.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
]
},
"changes": "----below are the changes----",
"name": "AwesomeProject",
"displayName": "AwesomeProject"
}
То есть, только когда я добавил:
"name": "AwesomeProject",
"displayName": "AwesomeProject"
внизу моего 'app.json'
команда react-native eject
начала работать, что не былоработал раньше, так как вывод был:
Приложение name
должно быть определено в файле конфигурации app.json
, чтобы определить имя проекта.Он не должен содержать пробелов или тире.
Очевидно, что это гибрид двух разных версий менеджеров пакетов: «Экспо» и «npm».
Но «Ошибка forEach в этой проблеме не исчезла.
Дальнейшие усилия были бесполезны, поэтому я не буду помещать их здесь.
Я буду пытаться, пока не пойму.