- 浏览: 677287 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qinshubao152:
参考:http://www.see-source.com/bl ...
关于android USB Host 串口编程 -
q328965539:
哥们 我做的数据也都是错误的啊····我怎么可以知道自己otg ...
关于android USB Host 串口编程 -
hgkmail:
好文
android中跨进程通讯的4种方式 -
cczscq:
楼主,我这里有个问题!我这里有个自己制作的font.ttf,这 ...
android字体的工作原理 -
blueice1986:
既然springMVC比struts好那么多的话那struts ...
为什么有了Struts 还要Spring MVC
react native环境搭建请移步:react native环境搭建
这里说说react native创建完成之后,运行中出现的常见问题,
问题1:
java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
这个是原因是工程找不到我们的android SDK。
解决方法:在工程的根目录下的android文件下新建一个local.properties的文件(我们可以直接拷贝Android项目的local.properties的文件)。
问题2:
A problem occurred configuring project ':app'.>failed to find Build Tools revision 23.0.1
这个是因为Build Tools revision 23.0.1和我们的sdk里面的版本不一致导致的。
解决方法:这里注意build.gradle和gradle中gradle-wrapper.properties的对应关系。
问题3
Could not install the app on the device, read the error above for details.
这个是因为未找到运行的设备
解决方法:注意在运行命令:react-native run-android之前一定要确保手机已经连接上电脑。
问题4
com.android.ddmlib.InstallException: Failed to establish session
这是小米手机调试的问题,我之前用魅族就没这问题
解决方法:小米手机设置里-------开发者选项---------启用MIUI优化关闭
问题5
SyntaxError:Strict mode does not allow function declaration in a lexically nested。
解决方案:
使用react-native init创建了一个新项目,在package.json中使用的react-native的版本如下:
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
报出如下图所示的错误:
SyntaxError
SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.
解决办法
第一种解决方案
打开
.\node_modules\react-native\Libraries\Core\InitializeCore.js 112行。
代码如下图:
将function handleError(e, isFatal)替换成var handleError = function(e, isFatal)
如下图所示:
最终执行npm start -- --reset-cache或者reload,解决问题。
第二种解决方案
将react-native版本改成0.38.0也能解决问题。
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
改成
"dependencies": {
"react": "15.4.1",
"react-native": "0.38.0"
}
问题原因
react-native的源码问题,在use strict严苛模式下,不允许如上的方式声明函数,会编译不通过,fackbook官方应该会会快修复这个问题。感谢阅读,希望能帮到你。
问题6
Could not connect to development server.
来看一张图:
大体意思是:
连接不到开发的服务器。
请按照以下的步骤来修复此问题:
确保包服务器在运行
确保你的设备或者模拟器连接着电脑,并且手机打开了USB调试模式,然后在cmd中运行adb devices来查看已经连接好的设备列表
确保飞行模式是关闭的
如果是使用真机来开发,输入 adb reverse tcp:8081 tcp:8081来检查设备
输入IP:8081(这个大家都会)
首先我是启动了服务的,并且打开了浏览器调试:
[javascript] view plain copy
http://localhost:8081/index.android.bundle?platform=android
查看端口信息
[javascript] view plain copy
adb reverse tcp:8081 tcp:8081
在没有的话可以打开dev Settings输入IP:8081调试就不多说了。
问题7
Could not install the app on the device, read the error above for details.
这个是因为react-native版本升级了,但是在项目的build.gradle没有改成升级的版本号。
问题8
com.android.ddmlib.InstallException: Failed to install all
解决方案:小米手机设置里-------开发者选项---------启用MIUI优化关闭
其他问题补充:
Q:RN所支持的最低iOS和Android版本?
A:Android >= 4.1 (API 16)
iOS >= 7.0
Q:RN和cordova/phonegap是一个东西吗?
A:不一样。RN不是一个webview(但包含了webview组件),不能直接复用web页面代码。RN的性能接近原生,超过cordova/phonegap。
Q:可以使用现有的js库吗?
A:由于RN理论上更接近nodejs的运行环境,所以对nodejs的库兼容更好一些。浏览器端的js库,涉及到DOM、BOM、CSS等功能的模块无法使用,因为RN的环境中没有这些东西
Q:如何升级RN版本?
A:请用编辑器打开项目目录中的package.json,找到类似下面的一行配置
"react-native": "0.31.0"
Q:应该使用什么IDE开发?
A:虽然常用的JS编辑器很多,但由于RN大量使用jsx和es6语法,目前只有sublime text(通过插件)和webstorm(10以上版本)提供了良好的支持。笔者推荐webstorm,因为它有更完善的语法提示和补全。另外虽然主要的业务逻辑是使用js开发,但仍然要依赖于原生的编译/调试环境,所以你还需要同时运行Xcode(iOS)或Android Studio(android)等。
Q:如何开启调试功能?
A:点击iOS模拟器顶部的Hardware菜单,选择Shake Gesture(对应真机摇一摇),会自动弹出如下图的菜单。
安卓模拟器则是点击菜单键,真机上没有菜单键的,摇一摇即可。
选择Debug in Chrome即会启动Chrome作为运行和调试环境(注意此时JS引擎为Chrome的V8,与iOS真机的javascriptCore引擎存在一些差异)。选择Inspect Element即可以像调试网页元素一样查看布局元素的样式,但比较简陋。React Devtools插件可装可不装,它只用来查看布局,不影响调试,且在目前的版本(>0.13)中还无法正常加载。
Q:使用ListView时报错:Sticky header index 0 was outside the range {...}
A:看起来是个数组越界错误,但多数情况下是由于ListView的子组件渲染错误(如套数据时没有检查undefined等)引起,而非ListView本身的问题。
Q:在使用Navigator的同时使用ListView或ScrollView,后两者的头部会多出一些空间。
A:将automaticallyAdjustContentInsets属性设为{false}.
这里说说react native创建完成之后,运行中出现的常见问题,
问题1:
java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
这个是原因是工程找不到我们的android SDK。
解决方法:在工程的根目录下的android文件下新建一个local.properties的文件(我们可以直接拷贝Android项目的local.properties的文件)。
问题2:
A problem occurred configuring project ':app'.>failed to find Build Tools revision 23.0.1
这个是因为Build Tools revision 23.0.1和我们的sdk里面的版本不一致导致的。
解决方法:这里注意build.gradle和gradle中gradle-wrapper.properties的对应关系。
问题3
Could not install the app on the device, read the error above for details.
这个是因为未找到运行的设备
解决方法:注意在运行命令:react-native run-android之前一定要确保手机已经连接上电脑。
问题4
com.android.ddmlib.InstallException: Failed to establish session
这是小米手机调试的问题,我之前用魅族就没这问题
解决方法:小米手机设置里-------开发者选项---------启用MIUI优化关闭
问题5
SyntaxError:Strict mode does not allow function declaration in a lexically nested。
解决方案:
使用react-native init创建了一个新项目,在package.json中使用的react-native的版本如下:
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
报出如下图所示的错误:
SyntaxError
SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.
解决办法
第一种解决方案
打开
.\node_modules\react-native\Libraries\Core\InitializeCore.js 112行。
代码如下图:
将function handleError(e, isFatal)替换成var handleError = function(e, isFatal)
如下图所示:
最终执行npm start -- --reset-cache或者reload,解决问题。
第二种解决方案
将react-native版本改成0.38.0也能解决问题。
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
改成
"dependencies": {
"react": "15.4.1",
"react-native": "0.38.0"
}
问题原因
react-native的源码问题,在use strict严苛模式下,不允许如上的方式声明函数,会编译不通过,fackbook官方应该会会快修复这个问题。感谢阅读,希望能帮到你。
问题6
Could not connect to development server.
来看一张图:
大体意思是:
连接不到开发的服务器。
请按照以下的步骤来修复此问题:
确保包服务器在运行
确保你的设备或者模拟器连接着电脑,并且手机打开了USB调试模式,然后在cmd中运行adb devices来查看已经连接好的设备列表
确保飞行模式是关闭的
如果是使用真机来开发,输入 adb reverse tcp:8081 tcp:8081来检查设备
输入IP:8081(这个大家都会)
首先我是启动了服务的,并且打开了浏览器调试:
[javascript] view plain copy
http://localhost:8081/index.android.bundle?platform=android
查看端口信息
[javascript] view plain copy
adb reverse tcp:8081 tcp:8081
在没有的话可以打开dev Settings输入IP:8081调试就不多说了。
问题7
Could not install the app on the device, read the error above for details.
这个是因为react-native版本升级了,但是在项目的build.gradle没有改成升级的版本号。
问题8
com.android.ddmlib.InstallException: Failed to install all
解决方案:小米手机设置里-------开发者选项---------启用MIUI优化关闭
其他问题补充:
Q:RN所支持的最低iOS和Android版本?
A:Android >= 4.1 (API 16)
iOS >= 7.0
Q:RN和cordova/phonegap是一个东西吗?
A:不一样。RN不是一个webview(但包含了webview组件),不能直接复用web页面代码。RN的性能接近原生,超过cordova/phonegap。
Q:可以使用现有的js库吗?
A:由于RN理论上更接近nodejs的运行环境,所以对nodejs的库兼容更好一些。浏览器端的js库,涉及到DOM、BOM、CSS等功能的模块无法使用,因为RN的环境中没有这些东西
Q:如何升级RN版本?
A:请用编辑器打开项目目录中的package.json,找到类似下面的一行配置
"react-native": "0.31.0"
Q:应该使用什么IDE开发?
A:虽然常用的JS编辑器很多,但由于RN大量使用jsx和es6语法,目前只有sublime text(通过插件)和webstorm(10以上版本)提供了良好的支持。笔者推荐webstorm,因为它有更完善的语法提示和补全。另外虽然主要的业务逻辑是使用js开发,但仍然要依赖于原生的编译/调试环境,所以你还需要同时运行Xcode(iOS)或Android Studio(android)等。
Q:如何开启调试功能?
A:点击iOS模拟器顶部的Hardware菜单,选择Shake Gesture(对应真机摇一摇),会自动弹出如下图的菜单。
安卓模拟器则是点击菜单键,真机上没有菜单键的,摇一摇即可。
选择Debug in Chrome即会启动Chrome作为运行和调试环境(注意此时JS引擎为Chrome的V8,与iOS真机的javascriptCore引擎存在一些差异)。选择Inspect Element即可以像调试网页元素一样查看布局元素的样式,但比较简陋。React Devtools插件可装可不装,它只用来查看布局,不影响调试,且在目前的版本(>0.13)中还无法正常加载。
Q:使用ListView时报错:Sticky header index 0 was outside the range {...}
A:看起来是个数组越界错误,但多数情况下是由于ListView的子组件渲染错误(如套数据时没有检查undefined等)引起,而非ListView本身的问题。
Q:在使用Navigator的同时使用ListView或ScrollView,后两者的头部会多出一些空间。
A:将automaticallyAdjustContentInsets属性设为{false}.
发表评论
-
AndroidStudio无法执行Java的main函数
2021-03-25 10:10 737FAILURE: Build failed with an e ... -
最近github经常打不开解决办法
2021-03-23 21:43 2https://zhuanlan.zhihu.com/p/15 ... -
android studio 各个历史版本下载
2021-03-15 16:51 1637android studio 各个历史版本下载 https: ... -
pod install 的历程
2021-01-27 09:34 369公司ios项目拉下来执行有报错,建议执行pod install ... -
Android Studio Database Inspector 使用
2021-01-22 15:24 561转:https://segmentfault.com/a/ ... -
kotlin学习
2021-01-05 10:26 331转 https://blog.csdn.net/github_ ... -
Flutter upgrade升级一直停留在 Running pub upgrade...
2020-10-26 10:15 1066win10 下配置 最后用国内镜像解决了。方法: 1、计算机 ... -
什么是MVVM模式的架构?
2020-10-20 12:14 492转自:https://www.jianshu.com/p/a8 ... -
原生开发、H5开发和混合开发的优缺点
2020-06-04 15:20 517目前市场上主流的APP分为三种:原生APP、Web APP( ... -
flutter填坑——解决ListView添加在Scaffold上默认的的top-padding
2020-01-11 15:09 623解决方法 把ListView用MediaQuery.remo ... -
Flutter开发环境搭建——Ubuntu
2019-09-02 18:10 455配置完做下记录 准备,加快下载速度 由于在国内访问Flutt ... -
原 android view相对于根布局的坐标获取
2019-05-10 11:09 929一张图就看懂了,附件 -
认识一下 Emoji
2019-03-26 15:07 644https://www.cnblogs.com/plokmju ... -
ubuntu批量修改文件名字(换动画资源必用)
2019-03-23 15:28 832for file_old in `ls | grep 原来的 ... -
ubuntu连接android设备(附最简单方法)
2019-03-14 10:35 906新买的手机IQOO后,连不上adb,显示数字加null,所以看 ... -
解决 Configure build 下载慢的问题(亲测有效)
2019-03-09 23:11 3110在build.gradle 文件加入下面代码即可 buil ... -
记录下ubuntu下studio安装flutter
2019-03-09 11:37 1293一、安装Flutter的SDK及环境配置 1、访问官网,下载S ... -
Flutter与React Native
2019-03-06 17:58 952Flutter 与React Native 对比 [关于性 ... -
论开发框架的选择MVP,RxFlux2,Rxjava,Dagger2或在不需要
2018-08-31 10:23 998为什么要使用框架 使用框架,是为了提高生产效率。 框架就是 ... -
不继承RxAppCompatActivity的情况下使用RxLifeCycle
2018-08-29 10:07 2068在Android中使用Rxjava时可能会在页面退出时出现内存 ...
相关推荐
在React Native中显示本地图片是移动应用开发中的常见任务,特别是在使用JavaScript进行混合移动开发时。React Native允许开发者使用JavaScript来构建原生的iOS和Android应用程序,提供了丰富的组件库,其中包括用于...
在React Native开发中,Webview组件是一个非常关键的组成部分,它允许我们集成H5页面到原生应用中,实现原生应用与Web内容的交互。本文将深入探讨React Native中的Webview与H5的互调机制,以及如何利用它们来增强...
React Native的文件名称列表中包含了一个PDF文档,即"React Native跨平台移动应用开发.pdf",该文档可能详细讲解了以下几个关键知识点: 1. **安装与设置**:如何配置开发环境,包括安装Node.js、设置React Native ...
React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React的组件化思想来构建原生的iOS和Android应用程序。在这个“React Native实现音乐播放”的主题中,我们将深入探讨如何利用React ...
在JavaScript开发中,混合移动开发允许开发者利用Web技术来开发跨平台的移动应用,而React Native正是这种技术的一个代表。通过React Native,开发者可以编写一次代码,然后在多个平台上运行,极大地提高了开发效率...
此外,`Expo`是一个完整的React Native开发环境,它包含了构建、预览、调试和分发应用所需的所有工具,简化了开发流程,尤其适合快速原型制作和小型项目。 总的来说,React Native是一个强大的工具,它降低了跨平台...
### React Native for Windows 开发环境搭建指南 #### 一、概述 React Native 是 Facebook 推出的一款用于构建原生移动应用的框架,它允许开发者使用 JavaScript 和 React 构建 iOS 和 Android 应用。本文档将详细...
9. **错误处理和调试**:在实际开发中,可能会遇到平台兼容问题、样式冲突等问题,需要熟练使用React Native的调试工具和日志输出进行问题排查。 10. **性能优化**:考虑到弹出对话框可能会影响应用的性能,开发者...
移动项目的生命周期管理和状态管理是React Native开发中的重要环节。React组件有自己的生命周期方法,如`componentDidMount`、`shouldComponentUpdate`等,这些方法帮助我们控制组件的创建、更新和销毁。另外,随着...
在JavaScript开发-混合移动开发领域,这样的库极大地扩展了React Native的功能,使得开发者能够充分利用其灵活性和高效性。 React Native本身是一种由Facebook开发的开源框架,它允许使用JavaScript和React组件来...
在Android项目中嵌入ReactNative是一项常见的跨平台开发技术,它允许开发者利用JavaScript和React库来构建原生的Android应用。ReactNative是由Facebook推出的开源框架,它的核心理念是“Learn once, write anywhere...
在React Native中实现文件上传功能是一项常见的需求,尤其在混合移动开发中,JavaScript与原生平台的结合使得这种功能的实现变得可能。React Native是Facebook推出的一个框架,它允许开发者使用JavaScript来构建原生...
在React Native应用开发中,有时候我们需要集成地图功能,比如实现拖拽定位等交互式操作。在本案例中,我们探讨的是如何使用React Native与Webview相结合,通过高德地图API来实现在移动设备上的拖拽定位功能。这个...
ReactNative是Facebook开发的一款用于构建原生移动应用的框架,它允许开发者使用JavaScript和React库来编写跨平台的iOS和Android应用。在这个“ReactNative网路及本地缓存”的主题中,我们将深入探讨如何在React...
总的来说,React Native 视频播放器的实现涉及了跨平台开发、JavaScript编程、组件化设计以及多媒体处理等多个领域的知识,是React Native应用开发中的一个重要部分。通过学习和实践,开发者不仅可以创建出功能丰富...
在React Native应用开发中,与用户交互是必不可少的,其中包括访问设备的相机和相册功能。React Native提供了各种库来简化这些原生操作,其中`react-native-image-picker`是一个常用的库,它允许开发者轻松地调用...
10. **问题排查与社区支持**:书中会提及如何查找和解决常见错误,以及如何利用React Native社区资源,如Stack Overflow、GitHub等,获取帮助和反馈。 总之,《React Native跨平台移动应用开发_第2版》全面覆盖了...
React Native 异常处理库是专门为在React Native框架下开发的混合移动应用提供错误管理和调试支持的工具。React Native允许开发者使用JavaScript编写原生移动应用,但JavaScript代码的运行环境中可能会遇到各种错误...
《Learning React Native》是针对初学者的一份指南,旨在帮助读者掌握React Native技术,并为微信小程序的开发打下坚实的基础。React Native是由Facebook推出的开源框架,它允许开发者使用JavaScript和React来构建...
在iOS应用开发中,ARKit(Augmented Reality Kit...这个过程涉及到的知识点广泛,涵盖了AR技术、Swift编程、React Native开发以及原生模块的集成等多个方面。掌握这些知识,开发者可以创建出富有创新和吸引力的AR应用。