react-native 运行-android 挂起
react-native run-android hangs
我正在使用 react-native 启动一个新的应用程序,并遵循入门教程 here。我已经安装了 Android Studio、sdk 和 avd 文件,并且 react-native init 似乎工作正常...
react-native init myapp
>>
Installing React...
Installing Jest...
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
然后我尝试 运行 应用程序
react-native run-android
它就挂在那里(甚至放了一夜)。
如果我执行 strace
...lots of stuff then
read(12, "HTTP/1.0 200 OK\r\nServer: Motion/3.2.12+git20140228\r\nConnection: close\r\nMax-Age: 0\r\nExpires: 0\r\nCache-Control: no-cache, private\r\nPragma: no-cache\r\nContent-Type: multipart/x-mixed-replace; boundary=--BoundaryString\r\n\r\n", 65536) = 217
epoll_wait(5, [{EPOLLIN, {u32=12, u64=12}}], 1024, -1) = 1
read(12, "--BoundaryString\r\nContent-type: image/jpeg\r\nContent-Length: 4235\r\n\r\n7070[=14=]JFIF[=14=][=14=][=14=][=14=][=14=][=14=]71[=14=]4Exif
然后继续循环...
read(12, "--BoundaryString\r\nContent-type: image/jpeg\r\nContent-Length: 4235\r\n\r\n7070[=15=]JFIF.....
我尝试过重新安装 react-native、sdks 等,但错误仍然存在。
我也看到了一个类似的错误链接到 watchman 和 react-native init,但我认为这不适用,因为我目前没有安装它(之前已经尝试安装它)。
我正在使用 Linux Mint 18
4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
好的,这是一个使用端口 8081 的相机应用程序导致的问题。
如果我终止该进程,它就会工作。我检查了
使用的端口
netstat -tulpn
在那里寻找8081端口,然后
kill -9 <pid>
假设您很高兴没有 运行,然后更改其配置。
如果 react-native 检查正在使用的端口并在使用时报告它,将会很方便,以避免其他人遇到同样的问题。
运行 从命令提示符以管理员身份(得到 react-native start
到 运行)
然后在另一个命令提示符下 run-android 经过极其漫长的等待后我得到:无法确定 java 10 的版本。
我将 [项目]/gradle/wrapper/gradle-wrapper.properties 中的 gradlew 升级为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-src.zip
然后等了好久才结束,貌似什么都没做。
在 findLauncherJar 中遇到 filenullpointer 异常...
进一步阅读并更改为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip
然后它挂了一条消息:
gradle refresh failed could not find com.android.tools buildg
找到建议更改文件 Android/build.gradle 的 SO 38702032,并将 gradle 版本更正为 4.3.0
又遇到一个错误,去 http://jcenter.bintray.com/com/android/tools/build/gradle/ 看看有哪些版本存在。发现最后是2.3.3
恢复原样并添加mavenCentral
还检查了路径 (C:\Users\MyUsername\AppData\Local\Android\Sdk\platform-tools;C:\Users\MyUsername\AppData\Local\Android\Sdk\tools)
和三个环境变量 (c:\program files\java\sdk-10) 以及我有两个 ANDROID_HOME 和 ANDROID_SDK_HOME (c:\users\MyUsername\AppData\Local\Android\Sdk) ...
重新启动并工作。
如果你在Windows,你可以尝试:
- Ctrl + Alt + Delete 调出任务管理器
- Select "Node.js: Server-side Javascript" 过程
- 单击 "End Task" 按钮
然后再次尝试 react-native run-android
命令。
希望对您有所帮助。
我正在使用 react-native 启动一个新的应用程序,并遵循入门教程 here。我已经安装了 Android Studio、sdk 和 avd 文件,并且 react-native init 似乎工作正常...
react-native init myapp
>>
Installing React...
Installing Jest...
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
然后我尝试 运行 应用程序
react-native run-android
它就挂在那里(甚至放了一夜)。
如果我执行 strace
...lots of stuff then
read(12, "HTTP/1.0 200 OK\r\nServer: Motion/3.2.12+git20140228\r\nConnection: close\r\nMax-Age: 0\r\nExpires: 0\r\nCache-Control: no-cache, private\r\nPragma: no-cache\r\nContent-Type: multipart/x-mixed-replace; boundary=--BoundaryString\r\n\r\n", 65536) = 217
epoll_wait(5, [{EPOLLIN, {u32=12, u64=12}}], 1024, -1) = 1
read(12, "--BoundaryString\r\nContent-type: image/jpeg\r\nContent-Length: 4235\r\n\r\n7070[=14=]JFIF[=14=][=14=][=14=][=14=][=14=][=14=]71[=14=]4Exif
然后继续循环...
read(12, "--BoundaryString\r\nContent-type: image/jpeg\r\nContent-Length: 4235\r\n\r\n7070[=15=]JFIF.....
我尝试过重新安装 react-native、sdks 等,但错误仍然存在。
我也看到了一个类似的错误链接到 watchman 和 react-native init,但我认为这不适用,因为我目前没有安装它(之前已经尝试安装它)。
我正在使用 Linux Mint 18
4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
好的,这是一个使用端口 8081 的相机应用程序导致的问题。
如果我终止该进程,它就会工作。我检查了
使用的端口netstat -tulpn
在那里寻找8081端口,然后
kill -9 <pid>
假设您很高兴没有 运行,然后更改其配置。
如果 react-native 检查正在使用的端口并在使用时报告它,将会很方便,以避免其他人遇到同样的问题。
运行 从命令提示符以管理员身份(得到 react-native start
到 运行)
然后在另一个命令提示符下 run-android 经过极其漫长的等待后我得到:无法确定 java 10 的版本。
我将 [项目]/gradle/wrapper/gradle-wrapper.properties 中的 gradlew 升级为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-src.zip
然后等了好久才结束,貌似什么都没做。 在 findLauncherJar 中遇到 filenullpointer 异常...
进一步阅读并更改为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip
然后它挂了一条消息:
gradle refresh failed could not find com.android.tools buildg
找到建议更改文件 Android/build.gradle 的 SO 38702032,并将 gradle 版本更正为 4.3.0
又遇到一个错误,去 http://jcenter.bintray.com/com/android/tools/build/gradle/ 看看有哪些版本存在。发现最后是2.3.3
恢复原样并添加mavenCentral
还检查了路径 (C:\Users\MyUsername\AppData\Local\Android\Sdk\platform-tools;C:\Users\MyUsername\AppData\Local\Android\Sdk\tools)
和三个环境变量 (c:\program files\java\sdk-10) 以及我有两个 ANDROID_HOME 和 ANDROID_SDK_HOME (c:\users\MyUsername\AppData\Local\Android\Sdk) ...
重新启动并工作。
如果你在Windows,你可以尝试:
- Ctrl + Alt + Delete 调出任务管理器
- Select "Node.js: Server-side Javascript" 过程
- 单击 "End Task" 按钮
然后再次尝试 react-native run-android
命令。
希望对您有所帮助。