【React Native】在原生项目中集成之坑点总结

本文总结了在原生Android/iOS项目中集成React Native时可能遇到的坑点,包括compileSdkVersion和targetSdkVersion的版本问题、权限适配、依赖冲突的解决、添加JS到应用、引入React Native依赖以及解决运行时问题等,旨在帮助开发者顺利进行React Native集成。
摘要由CSDN通过智能技术生成

  大家座好,要开车了~~~

  俺是一个非常谨慎的人,对RN这门技术没有十足的信心之前,是不会直接拿来做新项目的(否则填坑,就能让你哭晕在厕所~)。

  但是还想要体验跨平台+实时发布带来的快感,最好不过的方法就是在现有的项目基础上进行改良,集成ReactNative框架,一个页面or一个View先使用RN搞起来(先挣它一个亿,慢慢来么,急什么),下面就是本人在Integration With Existing Apps (此处有英文显得高大上一些)的过程中踩得坑,又爬出来的过程,希望能对你有所帮助。


集成准备

  这方面网络上有好多的文案可以借鉴,(ReactNative向导),内容主要介绍npm和node的一些安装操作,没有这些基础建设,RN搞不转,如果你使用的是MAC,大致的关系如下:


Installing Dependencies

还有就是Android和IOS的开发环境搭建,没什么难度。

  这里特别(记得是特别)需要提醒的地方就是compileSdkVersion及targetSdkVersion的版本问题(站好,要跳坑了)。

  先介绍三个基础的概念:

compileSdkVersion : 定义 Gradle 用哪个 Android SDK 版本编 译应用。
minSdkVersion : 定义应用可以运行的最低要求。
targetSdkVersion: 定义 Android 提供向前兼容的主要依据,如果不更新就不会应该最新版本的行为变化。

  好的,在RN官网介绍中有这么一段文字

Android Studio installs the most recent Android SDK by default. React Native, however, requires the Android 6.0 (Marshmallow) SDK.

  Android 6.0对应API等级是23,为什么需要Android 6.0,因为ReactNative引用了23的资源文件,另外有个别RN方法有23的等级限制。因此compileSdkVersion 23 就必不可免了,如果你性格倔强的话,就会看见下面的错误。


23资源引用异常

Error retrieving parent for item: No resource found that matches the given name 'xxx'.

  同理,如果遇到这类问题,也可以检查一下,使用的compileSdkVersion 版本是否正确。

  接下来,通过rebuild 编译程序,如果幸运的话,会看到下面的Gradle Build Message:

Error:错误: 程序包org.apache.http不存在
Error:错误: 程序包org.apache.http.message不存在

  对的,聪明的你肯定猜到了,Android API 23 移除了HttpClient 相关的类,解决办法如下:

android {
    useLibrary 'org.apache.http.legacy'
}

  继续开车,此时我们还没有引入任何RN相关的依赖,好的run 一下程序,竟然Crash了࿰

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值