官方初始化项目方法:
1、脚手架:create-react-native-app
直接创建项目,创建完后,会在终端显示一个二维码,手机上安装EXPO,且处于同一网络,即可直接运行。
优点:便捷,不需要配置本地环境,入口文件整合到App.js
文件中
缺点:由于使用Create React Native App创建项目时不会生成任何本机代码,因此无法在Expo客户端应用程序中提供的React Native API和组件之外添加自定义本机模块。(解决方法:npm run eject
)
2、安装完整的环境后,使用react-native init #ProjectName#
的方式,参照此处。
优点:一个完整的项目架构,可以直接操作。
缺点:前期安装配置环境很麻烦,分两个入口文件index.ios.js
和index.android.js
,看着懵逼。使用方式:
1、运行react-native run-ios
和react-native run-android
。
2、刷新,安卓模拟器下双击R
键,iOS模拟器下command+R
。
3、调出菜单:安卓模拟器右侧菜单按钮,iOS模拟器下command+D
。
4、打开调试终端,调出菜单后,点击选项Debug JS remotely
,浏览器会打开一个页面,按command+option+J
即可开始调试。-
XCode持续打印错误:nw_connection_get_connected_socket 6 Connection has no connected handler
处理方法:见下图
导致原因:未知
iOS真机运行调试
如果你需要在真机上启用调试功能,则需要打开RCTWebSocketExecutor.m文件,然后将其中的"localhost"改为你的电脑的IP地址,最后启用开发者菜单中的"Debug JS Remotely"选项。
文件路径:/Libraries/RCTWebSocket.xcodeproj/RCTWebSocketExecutor.m
安卓真机运行AS报错但是真机照常启动
如果遇到这个问题,看报错,一般是Error: Activity class {com.myapp/com.myapp.MainActivity} does not exist.
这个问题,处理方法就是打开/android/app/build.gradle
,修改:
defaultConfig {
applicationId "com.myapp"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
项目初始是没注释掉的,我注释掉applicationId
,但是一次有用,下一次再运行,又报同样错误,每次运行前动一下这个文件,就能正常,原因天知道。
但是要注意,如果是一直注释和取消注释,能正常运行,但是不会安装包,会一直运行之前的代码,就算你改了代码,也还是按之前安装的包去运行,需要报一次错(报错就是因为安装的时候引起的),然后再执行一次修改build.gradle
的操作,这样你的新代码才能运行。
非常迫切需要知道怎么解决这问题,查了很多资料,都不顶用。
- 安卓真机运行已开服务但是白屏的或者报错的
留意有没有加上这一步:运行adb reverse tcp:8081 tcp:8081
命令
备忘:关于如何安卓真机调试:打开开发者选项,打开USB调试,需要service的话,需要在每次重新安装包后,到辅助功能里打开对应服务。