关于gradle:react-native run-android失败

react-native run-android fails

由于我已经升级到本机0.42.0,因此我无法再运行我的应用。

我有一个奇怪的问题,那就是gradle将从maven存储库中获得旧版本0.21,而不是从node_modules获得react-native。我尝试冻结该版本,禁止所有与构建或缓存相关的事情,甚至还通过仅复制js文件来重新开始。但是我仍然遇到与gradle不在node_modules中寻找react-native相关的错误。

这是我的设置。gradle:

1
2
3
4
5
rootProject.name = 'My App'

include ':app'
include ':react-native-google-analytics-bridge'
project(':react-native-google-analytics-bridge').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-analytics-bridge/android')

和我的应用程序的build.gradle依赖项:

1
2
3
4
5
6
7
dependencies {
    compile fileTree(dir:"libs", include: ["*.jar"])
    compile"com.android.support:appcompat-v7:23.0.1"
    compile"com.facebook.react:react-native:0.42.0"  // From node_modules
    compile"com.facebook.fresco:animated-gif:0.11.0"
    compile project(':react-native-google-analytics-bridge')
}

最后是项目build.gradle:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

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"
            url"http://private-repos"
        }
    }
}

有任何线索吗?


发现问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

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"
        }
        maven {
            url"http://private-repos"
        }
    }
}

您必须为要添加的每个URL创建一个Maven部分。
当您像我一样首先指定它时,它甚至不会抛出错误,它只会忽略第一个URL。
由于日志记录不正确而造成的小时数损失...


尝试检查package.json并查看其中的内容。

如果在那里找到旧版本,则可以对其进行更改,然后运行npm install或仅运行npm install --save react-native@<the-desired-version>

如果遇到需要升级的错误,请运行
npm install --save react@<needed-version>

在我的情况下,我必须使用此替代方法,因为标准的(基于git)无法使用。

有关此替代方法和标准替代方法的更多详细信息,请点击此处:
https://facebook.github.io/react-native/docs/upgrading.html