Intereting Posts
Где выходит LogCat Log.x () при запуске тестов Android JUnit? Возможно ли разработка приложения для Android с использованием Lua? Android – Как я могу просмотреть базу данных sql, созданную в моем приложении? Я запускаю его на эмуляторе Android в Eclipse Facebook SDK для загрузки android всегда сбой Мгновенный запуск не работает Как различать внутренний и внешний путь SD-карты в android StartActivityForResult и Intents Дополнительно, кажется, что дополнительные функции не отбрасываются Регистрировать широковещательный приемник динамически не работает – BluetoothDevice.ACTION_FOUND Воспроизведение звука в приложении Phonegap для Android Robotium. В наборе тестов каждый следующий тест зависит от предыдущего теста Android-sharedpreference Как передать различные объекты в качестве параметра в AsycTask? Как нарисовать круг, прямоугольник вручную на видеоролике Android Как предотвратить открытие ссылок в интегрированном мини-браузере Gmail Передача данных с помощью Serializable

React Native не поддерживает разработку в Windows (пока)?

Я считаю, что люди очень рады, что React Native теперь, наконец, поддерживает Android.

НО будет огромное разочарование в том, что он не поддерживает разработку на машинах Windows, что во многих случаях предотвратит использование React Native в крупных компаниях, которые не могут просто изменить свою основную ОС.

Я немного выкопал, и, похоже, это не так сложно заставить его работать на Windows в любом случае.

Перейдите с икру в requirejs.exec в requirejs.exec react-native-cli index.js следующим образом:

  spawn.exec(cmd + ' ' + args.join(' '), function(code, output){ if (code !== 0) { cb(new Error('Command exited with a non-zero status ' + code + '\n' + cmd + ' ' + args.replace(',', ' '))); } else { cb(null); } }); //var proc = spawn(cmd, args, {stdio: 'inherit'}); //proc.on('close', function(code) { // if (code !== 0) { // cb(new Error('Command exited with a non-zero status')); // } else { // cb(null); // } //}); 

Это изменение позволяет мне запускать react-native run-android на основе react-native run-android без видимых ошибок. Он запускает эмулятор и приложение.

Единственный последний недостающий элемент для его работы в Windows: почему сервер разработки не работает – или почему приложение не может подключиться к нему?

Я получаю «Невозможно скачать JS Bundle …», красный экран смерти. Кажется, что react-native run-android на основе react-native run-android не смог запустить его, даже если он печатает Starting JS server... См. Полный вывод внизу.

Кто-нибудь, кто может это исправить?

спасибо

  Y:\Mobile>react-native run-android Starting JS server... Building and installing the app on the device (cd android && gradlew.bat installDebug)... :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72300Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42300Library UP-TO-DATE :app:prepareComFacebookFrescoDrawee061Library UP-TO-DATE :app:prepareComFacebookFrescoFbcore061Library UP-TO-DATE :app:prepareComFacebookFrescoFresco061Library UP-TO-DATE :app:prepareComFacebookFrescoImagepipeline061Library UP-TO-DATE :app:prepareComFacebookFrescoImagepipelineOkhttp061Library UP-TO-DATE :app:prepareComFacebookReactReactNative0110Library UP-TO-DATE :app:prepareOrgWebkitAndroidJscR174650Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources UP-TO-DATE :app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE :app:generateDebugSources UP-TO-DATE :app:processDebugJavaRes UP-TO-DATE :app:compileDebugJavaWithJavac UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:compileDebugSources UP-TO-DATE :app:preDexDebug UP-TO-DATE :app:dexDebug UP-TO-DATE :app:validateDebugSigning :app:packageDebug UP-TO-DATE :app:zipalignDebug UP-TO-DATE :app:assembleDebug UP-TO-DATE :app:installDebug Installing APK 'app-debug.apk' on 'reactnative(AVD) - 6.0' Installed on 1 device. BUILD SUCCESSFUL Total time: 20.332 secs Starting the app (adb shell am start -n com.mobile/.MainActivity)... Starting: Intent { cmp=com.mobile/.MainActivity } 

ОБНОВИТЬ

Вот еще несколько подробностей о том, что я пытался получить, чтобы сервер разработки работал после того, как я начал react-native run-android :

Я попробовал это – но «npm start» терпит неудачу:

  Y:\Mobile>npm start > Mobile@0.0.1 start Y:\Mobile > node_modules/react-native/packager/packager.sh 'node_modules' is not recognized as an internal or external command, operable program or batch file. npm ERR! Windows_NT 6.3.9600 npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start" npm ERR! node v4.0.0 npm ERR! npm v2.14.2 npm ERR! code ELIFECYCLE npm ERR! Mobile@0.0.1 start: `node_modules/react-native/packager/packager.sh` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the Mobile@0.0.1 start script 'node_modules/react-native/packager/packager.sh'. npm ERR! This is most likely a problem with the Mobile package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node_modules/react-native/packager/packager.sh npm ERR! You can get their info via: npm ERR! npm owner ls Mobile npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! Y:\Mobile\npm-debug.log 

Затем я попробовал react-native start которое не получилось так:

  Y:\Mobile>react-native start module.js:338 throw err; ^ Error: Cannot find module 'Y:\Mobile\packager.js' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:286:25) at Function.Module.runMain (module.js:475:10) at startup (node.js:117:18) at node.js:951:3 

Затем я попробовал node node_modules/react-native/packager/packager.js который фактически работает примерно так:

  Y:\Mobile>node node_modules/react-native/packager/packager.js ┌────────────────────────────────────────────────────────────────────────────┐ │ Running packager on port 8081. │ │ │ │ Keep this packager running while developing on any JS projects. Feel │ │ free to close this tab and run your own packager instance if you │ │ prefer. │ │ │ │ https://github.com/facebook/react-native │ │ │ └────────────────────────────────────────────────────────────────────────────┘ Looking for JS files in Y:\Mobile React packager ready. [10:43:07 AM] <START> Building Dependency Graph [10:43:07 AM] <START> Crawling File System [10:43:17 AM] <END> Crawling File System (10513ms) [10:43:17 AM] <START> Building in-memory fs for JavaScript [10:43:18 AM] <END> Building in-memory fs for JavaScript (1116ms) [10:43:18 AM] <START> Building in-memory fs for Assets [10:43:19 AM] <END> Building in-memory fs for Assets (1090ms) [10:43:19 AM] <START> Building Haste Map [10:43:20 AM] <START> Building (deprecated) Asset Map [10:43:20 AM] <END> Building (deprecated) Asset Map (221ms) [10:43:20 AM] <END> Building Haste Map (639ms) [10:43:20 AM] <END> Building Dependency Graph (13360ms) 

Но затем я нажимаю Reload JS на красном экране смерти и примерно через 30 секунд или снова он снова не работает, и консоль сервера разработки печатает это, а затем выходит из сервера разработки:

  <--- Last few GCs ---> 172210 ms: Scavenge 1402.5 (1455.6) -> 1402.5 (1455.6) MB, 9.6 / 0 ms (+ 2.0 ms in 1 steps since last GC) [allocation failure] [incremental marking delaying mark-sweep]. 173083 ms: Mark-sweep 1402.5 (1455.6) -> 1402.5 (1455.6) MB, 872.5 / 0 ms (+ 3.0 ms in 2 steps since start of marking, biggest step 2.0 ms) [last resort gc]. 173954 ms: Mark-sweep 1402.5 (1455.6) -> 1402.4 (1455.6) MB, 871.1 / 0 ms [last resort gc]. <--- JS stacktrace ---> ==== JS stack trace ========================================= Security context: 0000018472E37349 <JS Object> 1: join [path.js:~217] [pc=0000039512658044] (this=0000006899C67369 <an Object with map 0000008FE2423E19>) 2: arguments adaptor frame: 3->0 3: /* anonymous */(aka /* anonymous */) [Y:\Mobile\node_modules\react-native\packager\react-packager\src\DependencyResolver\DependencyGraph\ResolutionRequest.js:~226] [pc=00000395137E2AFA] (this=0000018472E04131 <undefined>,realModuleN... FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 

Я думаю, что мы очень близки, чтобы заставить его работать в Windows, мне нужно немного помочь с последними деталями здесь.

Пожалуйста помоги

Solutions Collecting From Web of "React Native не поддерживает разработку в Windows (пока)?"

ОБНОВЛЕНИЕ: Начиная с версии 0.14 (октябрь 2015 г.) разработка Windows возможна ( подробно ) благодаря удивительной работе сообщества.


Windows официально не поддерживается, см. Документацию по началу работы .

Мы хотели выпустить релиз как можно раньше и сначала сосредоточиться на Mac OS.

Люди в сообществе получили React Native для работы с Linux с минимальными изменениями (мы скоро их задокументируем), и похоже, что кто-то просто заработал на Windows:

https://github.com/facebook/react-native/issues/2787

Я нашел способ исправить это, установив cygwin и запустив: cd package sh package.sh

Надеюсь, это поможет кому-то.

ReactWindows добавляет поддержку SDK Windows 10, которая позволяет создавать приложения для:

  • Windows 10
  • Windows 10 Mobile
  • Xbox One (UWP)
  • Windows 7 и 8.1 (WPF)