刚开始学习react native,第一步自然是搭建好开发环境,node及jdk本身就有,Python2、Android studio以及Android sdk的安装倒是没什么大问题,按照官网的教程做就行了,还有Android studio我目前理解的是其实主要作用就是配置对应版本的安卓模拟器或者是安装sdk比较方便,

不过在项目正确跑起来之前确实也碰到一些问题,这里把自己的解决经历记录下来

问题一:react-native run-android的时候在download gradle的时候等了很久,然后就是提示失败,说是打包的时候出现了解压异常什么的问题,另外也提示说确认是否已经连接到可用的安卓设备什么的,捣腾了一会安卓模拟器发现我确实没有配置正确,因为Android studio默认的安卓模拟器是Android 9,但是官网说明目前应该使用Android 8.1,好吧那就新建一个,结果还是不行,然后考虑到每次运行的时候总是在提示说下载gradle-4.4-all.zip等待一段时间,所以我想可能就跟这个有关,网上查了一下还真有这个问题,其实就是下载超时,解决方式就是自己先下载好对应压缩包放到本地,然后修改配置文件把路径指向本地文件即可,

配置文件是项目目录下的android\gradle\wrapper\gradle-wrapper.properties,修改后内容如下,而且注意最好用相同版本,我开始就是下载别人博客下提供的链接,下载了比较旧的一个版本结果运行还是出错了,下载gradle访问http://services.gradle.org/distributions/即可,可以下载到各个版本的

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
#指定本地文件代替原本网络下载
distributionUrl=file:///D:/android-sdk/gradle-4.4-all.zip

问题二:gradlew assembleRelease打包安装包出错,同样按照官网教程一步步做,前面的生成签名文件问题不大,但是最后运行gradlew assembleRelease的时候报错了,错误提示大概是说不能访问@babel\parser\.bin\parser这个目录的问题,我在node_modules下确实找到了这个文件夹,发现最终目录下是一个快捷方式,然后这个快捷方式确实打不开,感觉问题应该就出在babel这里,然后我看了一下项目的package.json,发现有这样一个包

metro-react-native-babel-preset

这应该是react基于babel封装的一个包,实现了react自身在转换js时需要进行的一些操作什么的,我心想换一个版本看看好不好用,

执行命令npm view metro-react-native-babel-preset versions查看该包的所有版本,嗯,确实之前有很多版本,而现在用的是最新的0.49.0,

那么先npm uninstall metro-react-native-babel-preset把原来的包卸载,

然后重新安装上一个版本,npm i --save-dev metro-react-native-babel-preset@0.48.3,命令中@指定版本确保安装0.48.3版本的包,安装完成重新执行打包命令gradlew assembleRelease

这一回执行没有出现异常,最后提示构建成功,项目目录下的android\app\build\outputs\apk\release目录也出现了最新的apk文件。

至此react native两个基本的操作即模拟器运行以及生产安装包可算是成功了,总结来讲主要的问题点是版本之间的兼容问题,新版本的某些行为特性改变或者是旧版本还未出现所使用到的行为特性,这都可能导致整体的运行异常

react-native-cli运行项目及打包apk失败的解决过程的更多相关文章

  1. 第07讲- Android项目的打包apk

    第07讲Android项目的打包apk 方法一:在工作目录bin文件夹下有一个与项目同名的apk文件 (最懒惰的方式,不推荐,不安全,不利于版本更新,只有在开发模式时使用) 方法二:使用key方式 签 ...

  2. React Native 系列(三) -- 项目结构介绍

    前言 本系列是基于React Native版本号0.44.3写的,相信大家看了本系列前面两篇文章之后,对于React Native的代码应该能看懂一点点了吧.本篇文章将带着大家来认识一下React N ...

  3. React Native安卓代码混淆和打包

    一上午就整了个React Native的打包,中间还遇到各种问题,这里还是记录下吧: 文档链接: http://reactnative.cn/docs/0.45/signed-apk-android. ...

  4. React Native for android 项目驱动教程

    第一节 搭建开发环境 第二节 显示页面标题 第三节 实现页面布局 # React native是什么? React Native,是颠覆性的移动开发技术.它使用js开发,又是原生应用,不同于Hybri ...

  5. windows安装React Native开发运行环境

    React Native是什么 React Native是facebook开源的一个用于开发app的框架.React Native的设计理念:既拥有Native (原生) 的用户体验.又保留React ...

  6. React Native 在现有项目中的探路

    移动开发中,native开发性能和效果上无疑是最好的. 但是在众多的情况下,native开发并不是最优的选择.当需求经常改动的时候,当预算有限的时候,当deadline很近的时候,native开发的成 ...

  7. React Native与原生项目连接与发布

    前面的各种环境配置按照官方文档一步一步来,挺详细,宝宝在这里就不多说废话了. 其次,前面的配置,我参照的这个博主的文章React Native 集成到iOS原生项目 下面是宝宝掉过的坑(半径15M): ...

  8. Android Studio 学习笔记1.1 创建自己的第一个安卓项目并且打包APK

      自从上一次安装完安卓开发工具Android Studio后抽时间看视屏尝试编写自己的第一个安卓项目约两周的时间 每天下班后会花上1~2小时的时间去学习 目前的成果如下:次元宅的我.apk 嘛 总而 ...

  9. CoCos2dx开发:PC端调试运行正常但打包apk文件后在手机上点击闪退

    记:今天调试时出现的一个PC端调试运行正常,但打包apk文件后在手机上点击闪退的问题. 可能在不同的情况条件下,会有不同的原因导致apk安装后闪退问题.拿android studio等软件来说,开发安 ...

随机推荐

  1. springboot 解决Jackson导致Long型数据精度丢失问题

    代码中注入一个bean即可: /** * 解决Jackson导致Long型数据精度丢失问题 * * @return */ @Bean("jackson2ObjectMapperBuilder ...

  2. 从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

    作者 | 易立 阿里云资深技术专家 导读:从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的.与时俱进的技术架构.本篇文章从企业分布式应用架构层面介绍 ...

  3. 删除链表中的倒数第N个节点

    题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: ->->->->, 和 n = . 当删除了倒数第二个节点后,链表变为 -&g ...

  4. http内网转发

    package main import ( "io" "log" "net/http" "strings" ) func ...

  5. HTML模版大全网

    HTML模版大全网,里面有一部分是后台管理的网站模版,HTML全都有.大家有需要的话,可以自行去下载. http://www.htmlmbdq.com

  6. C# Moq

    Moq 1 My Cases 1.1 简单入门 2 Reference 2.1 Methods 2.2 Matching Arguments 2.3 Properties 2.4 Events 2.5 ...

  7. HighChat 动态绑定数据记录

    最近刚开始做图形操作,纠结了一上午,highchat 动态绑定数据这块一直不知道怎么绑定,后来多次尝试,发现 1.x轴的数据是个数组格式,我从后台传到前台的时候,js中用数组进行处理数据,然后赋值到c ...

  8. Spring扩展点之Aware接口族

    引言 Spring中提供了各种Aware接口,方便从上下文中获取当前的运行环境,比较常见的几个子接口有:BeanFactoryAware,BeanNameAware,ApplicationContex ...

  9. JavaScript面向对象①

    什么是对象 对象是一个整体,对外提供一些操作 什么是面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节:比如jQuery 面向对象编程(OOP)的特点(自己理解的特点:把书本上多态放在类继承 ...

  10. Solr缓存原理分析及配置优化

    一.缓存原理 缓存,带来急速性能体验! Solr提供了一系列的内置缓存来优化查询性能.Solr的缓存原理主要涉及以下4个方面: 1.缓存大小及缓存置换法 从缓存大小的角度来看,不能将缓存设置的太大,否 ...