1.cd 到项目目录里面
2、连接模拟器 adb connect 127.0.0.1:7555,7555是端口号,不同的模拟器端口号不一样
3、运行程序 ,输入命令: react-native run-android,如果报错无法识别这个命令,则需要npm
报错问题集合
问题1:
unable to load script from assets 'index.android.bundle'.Make sure your bund is packaged correctiy or you're running a packager server.
![](https://i-blog.csdnimg.cn/blog_migrate/b533362af9cc070aed0e02518e82fa94.png)
解决办法1:
第一步:在Android/app/src/main目录下创建一个空的assets文件夹,
第二步:进入项目根目录执行下面代码:
react
-
native
bundle
--
platform
android
--
dev
false
--
entry
-
file
index
.
android
.
js
--
bundle
-
output
android/app/src/main/assets/index
.
android
.
bundle
--
assets
-
dest
android/app/src/main/res/
运行完毕后assets文件夹下会多出index.android.bundle和index.android.bundle.meta两个文件
第三步:重新运行程序完美解决。
总结:
index.android.bundle是用来调用原生控件的js脚本,每次当改变了 index.android.js,都需要使用上面的代码片段,来及时的更新index.android.bundle,然后打包才可以把新的index.android.js应用上,所以当没有index.android.bundle文件时,React-Native 项目是无法运行的。
解决办法二:设置虚拟机连接的服务ip
![](https://i-blog.csdnimg.cn/blog_migrate/2301652924dc8958afd55c6ed0164546.png)
1.点击虚拟机的“menu”键,
![](https://i-blog.csdnimg.cn/blog_migrate/f25859ac0f1ad4fc9a89517c35930322.png)
2.选择“Dev Setting”
![](https://i-blog.csdnimg.cn/blog_migrate/e547c23b6c24f8649bbe984202b6a624.png)
点击上图中的,设置为本机的ip地址和端口
然后执行“react-native run-android”命令。
问题2:
![](https://i-blog.csdnimg.cn/blog_migrate/2a5ecd2c20a43c32f5bfa4700b59cda8.png)
解决办法:换node_moudle文件夹
问题3:
![](https://i-blog.csdnimg.cn/blog_migrate/3283e7ecc6623fbeb6429c8cae671a14.png)
命令:
npm
cache
clean
--
force
rm -rf node_modules
删除android\app文件夹下的build文件夹。
问题4:cannot add a child that doesn't have a YogaNode to a parent without a measure function!
检查</>是否有不配对的。
问题5:react-native run-android运行报错“Could not expand ZIP”
![](https://i-blog.csdnimg.cn/blog_migrate/6264ceba4e3e2fb13a3906acf8ff0bd8.png)
解决办法:
cd android
gradlew clean
cd ..
react-native run-android
问题6:app:transformClassesWithDexForDebug
解决办法:观察在运行react-native run-android 时,停在app:transformClassesWithDexForDebug时提示信息,表示gradle内存不够,我遇到时提示是设置 org.gradle.jvmargs=-Xmx1536m。(修改gradle.properties文件)