从node_modules目录导入React-Native Android不起作用

时间:2018-05-15 16:18:41

标签: android maven react-native gradle jcenter

我们正在使用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项目使用的是react-native,它位于node_modules目录中。但今天,gradle自动从jcenter下载了react-native 0.55.3。

此图片显示我们从jcenter下载的react-native

This image shows us react-native downloaded from jcenter

我们尝试了这个

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"
    }
}

但它不起作用。

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

1 个答案:

答案 0 :(得分:0)

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 }