ReactNative开发之Android项目中组件库link依赖


前言

ReactNative开发过程中,经常会引用一些组件库来实现一些特殊需求。有些组件库使用时,需要link依赖项,是因为这些库基于一些原生代码实现,你必须把这些文件添加到你的应用,否则应用会在你使用这些库的时候产生报错。 链接原生库有两种方式,一种是自动链接,一种是手动链接。文中以我们开发中常用的react-navigation组件库为例。

注:使用link依赖项之前,需先确认react-native版本和项目结构

  • 若项目为ReactNative项目,且react-native版本为0.60版本及以上版本,则不必link,因为项目中已经写好了link
  • 若项目为ReactNative项目,但react-native版本为0.60以下,则需要自动或者手动link
  • 若项目是Android项目结构则需要手动link,切勿用自动link,因为自动link的地址指向默认是ReactNative项目结构。

1.自动链接

  • 首先,安装一个带原生依赖的库(以react-navigation为例。下同)
    $ npm install react-navigation
    $ npm install react-native-gesture-handler
    
  • 然后,自动link依赖项
    // 链接所有需要链接的库
    $ react-native link
    // 如果只需要链接某一个库
    $ react-native link react-native-gesture-handler
    

2.手动链接

当自动链接没有生效的时候,可以使用手动链接来实现链接依赖项。

  • 首先,在Android项目的根目录中的settings.gradle中添加
     include ':react-native-gesture-handler'
     project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
    
    
  • 然后,在build.gradle添加依赖
    implementation project(':react-native-gesture-handler')
    implementation "com.facebook.react:react-native:+"
    
  • 最后,在Application中引入Package()方法
     import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
     
     @Override
     protected List<ReactPackage> getPackages() {
         return Arrays.<ReactPackage>asList(
             new MainReactPackage(), // ReactNative默认方法
             new RNGestureHandlerPackage() // react-native-gesture-handler的方法
         );
     }
    

    注:若getPackages()方法如下,则不需要更改。

     @Override
     protected List<ReactPackage> getPackages() {
       @SuppressWarnings("UnnecessaryLocalVariable")
       List<ReactPackage> packages = new PackageList(this).getPackages();
       // Packages that cannot be autolinked yet can be added manually here, for example:
       // packages.add(new MyReactNativePackage());
       return packages;
     }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值