【问题标题】:React-Native Android import from node_modules directory does not working从 node_modules 目录导入 React-Native Android 不起作用
【发布时间】:2018-10-25 13:36:37
【问题描述】:

我们使用的是 react-native 0.43.4 版本,并且我们对它进行了分叉。 它正在通过 npm install 下载。

package.json

"react-native": "git+ssh://git@subdomain.domain.net/username/react-native#fix/xcode_9_3",

我们的 Android 项目级 gradle 文件

allprojects {
    repositories {
        mavenLocal()
        jcenter()

        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }

        google()
    }
}

它工作了将近一年。我们的 android 项目使用的是 node_modules 目录内的 react-native。但是今天,gradle 自动从 jcenter 下载了 react-native 0.55.3。

这张图片展示了我们从 jcenter 下载的 react-native

我们试过了

repositories {
    jcenter {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"
    }
    maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"
    }
}

但它不起作用。

任何想法如何解决这个问题?

【问题讨论】:

  • 我的 Android 项目也突然停止工作了。
  • This issue 在他们的 GitHub 上解释出了什么问题
  • 谢谢,我们会试试这个,但我正在考虑其他模块依赖项,如 react-native-facebooksdk、react-native-google-anakytics 等。我希望这也会强制其他模块版本。

标签: android maven react-native gradle jcenter


【解决方案1】:

Facebook 显然从 0.55.3 版本向 jcenter 发布了一个 maven 工件。我认为这不是故意的,因为他们在 0.20.1 版本中停止了这样做。

由于我们大多数人在 build.gradle 文件中都有implementation "com.facebook.react:react-native:+,因此您的本地版本将被忽略,而将使用 jcenter 的最高版本。 + 对此负责,因为它需要最新版本。

如何解决:

  1. 删除您的本地 gradle 缓存(如果有的话,还有 CI-server 缓存)
  2. 将本地 maven 放在 build.gradle 中的 jcenter 上方(本地查找优于远程查找)
  3. 确定:使用compile("com.facebook.react:react-native:0.43.4") { force = true }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 2021-10-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多