【问题标题】:How to include an external library in a React native project in Android Studio?如何在 Android Studio 的 React 本机项目中包含外部库?
【发布时间】:2017-01-13 14:11:48
【问题描述】:

我正在将 Web 应用程序移植到 Android Studio 中的 React 应用程序。我正在使用一个外部库(这个:https://trackingjs.com/)。由于我对 Android Studio 和 React 还很陌生,所以我知道如何正确地做到这一点。在我的 webapp 中,我只是将它包含在一个脚本标签中。

我已将库保存到我的项目文件夹中,与我的 index.android.js 文件位于同一目录中。我不希望以任何方式更改 tracking.js 中的代码。我不确定如何进行。这一定是一个常见问题,但我没有找到任何可行的方法。

【问题讨论】:

  • Tracking.js 确实有一个节点包(“tracking”)。

标签: javascript android android-studio react-native


【解决方案1】:

如果可以从 npm 获得,您可以执行 npm install packageName --save 然后使用 import Package from 'packages.js'

请记住,react native 并不完全是 javascript,某些浏览器特定的功能不会转换,换句话说,您使用的插件可能无法在 react native 中工作。

顺便说一句,除了启动模拟设备来运行 react native 之外,不需要 android studio。您应该能够 react-native run-android 并且如果您正确设置了模拟设备,它将启动包管理器并安装您的应用程序,然后在保存时刷新。你用的是 react native cli吗?

顺便说一句,在您的网络应用程序中,您应该能够使用 let tracking = require("tracking.js") 或使用上面的导入样式来包含它。如果你这样做,它应该被连接到你的 main.js 文件中,然后缩小,这可能会有所帮助。一次下载总比多次下载好。

【讨论】:

  • 我同时使用 react native cli 和 Android Studio。我在单独使用 Android Studio 时遇到问题(尽管我想我将它用作美化的文本编辑器)。我认为我在项目设置中做了一些可怕的错误,因为每次我打开 AS 并编辑我的 js 文件时,它都说它不是项目的一部分。每次我想测试代码时,我都必须将代码与 gradle 文件重新同步,这似乎也不正确。忘记 iOS。我根本无法在 Xcode 中工作。基本上我只是患有严重的 n00bitis 病例。幸运的是,这只是一个附带项目。
  • React Native 很难。有时只是在运行时安装新的 npm 库,我总是会出现红屏。需要一些时间。坚持教程等。无论如何,它必须包含在 react native 中的 require 或 import 中,所以看看你是否可以通过 npm install 然后 require 来管理它。
  • 是的,尝试从 pm 安装一个已知的 react native 包并包含 react native 材料包很好。然后导入或要求它任一工作。这至少应该告诉你如何导入一个包。
  • Npm install packageName -save 或者 yarn add packageName 如果你使用 yarn。
  • 顺便说一句,react-native 链接适用于用 java、objective-c 或 swift 编写的链接库到 react native 项目。对于一个 javascript npm 包,只需安装它,然后在你的 react native javascript 文件中重新安装它就足够了
【解决方案2】:

基于@liminal18 的 cmets,这对我有用,使用 Tracking.js:

$ npm install tracking

在命令行中,然后在 index.android.js 中

import {
Tracking
} from 'tracking';

这只是为了不出错地包含库。由于 Tracking.js 是基于 Web 的,因此实际使用它可能会出现问题,但这样做解决了包含外部库的问题。

【讨论】:

  • 可能想要包含 --save 以便 npm 知道将其添加到哪个部分。它奏效了吗?如果可以,我可能会考虑使用它。
  • 是的,这行得通。我仍然需要修改库,以便它更好地与 React-native 配合使用,因为 Tracking 是如此基于元素的。但这少了一个障碍。
  • 我真的很佩服你能走这么远。我刚刚放弃了为 rss 提要移植 xml 解析器并决定使用一项服务,如果你移植它,请告诉我并确保发布包。
猜你喜欢
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多