在react本机项目中安装react导航后发出警告



我是React Native的新手。我正在学习导航,所以我开始了一个全新的react原生项目,并遵循了react导航网站(react导航文档)上的步骤:

1)npm install --save react-navigation

2)npm install --save react-native-gesture-handler (not using expo)

3)react-native link react-native-gesture-handler

4) 按照网站对Android 的说明修改MainActivity.java

然后,当我运行命令react-native run-android时,我在手机中看到了预期的应用程序,但出现了以下消息:

配置项目:应用程序警告:配置"compile"已过时,已替换为"implementation"one_answers"api"。它将于2018年底被拆除。有关更多信息,请参阅:http://d.android.com/r/tools/update-dependency-configurations.html

任务:反应本机手势处理程序:compileDebugJavaWithJavac注意:/home/ana/code/react-native/seeCompileError/node_modules/react-national-gesture-handler/android/src/main/java.com/swmannest/gesturehandler/react/RNGestureHandlerButtonViewManager.java使用或覆盖不推荐使用的API。注意:使用-Xlint重新编译:有关详细信息,请弃用。注意:有些输入文件使用未检查或不安全的操作。注意:使用-Xlint重新编译:有关详细信息,请取消选中。

我在Linux Mint 19上运行物理Android手机上的代码。

我的build.gradle文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "27.0.3"
minSdkVersion = 16
compileSdkVersion = 27
targetSdkVersion = 26
supportLibVersion = "27.1.1"
}
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}

task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}

我的package.json文件:

{
"name": "seeCompileError",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"jwt-decode": "^2.2.0",
"react": "16.6.3",
"react-native": "0.57.8",
"react-native-gesture-handler": "^1.0.12",
"react-navigation": "^3.0.9",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-persist": "^5.10.0",
"redux-thunk": "^2.3.0"
},
"devDependencies": {
"babel-jest": "23.6.0",
"jest": "23.6.0",
"metro-react-native-babel-preset": "0.51.1",
"react-test-renderer": "16.6.3"
},
"jest": {
"preset": "react-native"
}
}

如果有任何提示或帮助,我将不胜感激,谢谢。

编译与实现

当您使用react-native link时,它会将依赖项添加到您的build.gradle文件中;根据依赖关系是如何设置的,它将其与CCD_ 8或CCD_。这对你来说很容易修复,你只需手动将其更改为implementation

因此,在您的build.gradle(模块:应用程序)中,您可以更改

compile project(':react-native-gesture-handler')

implementation project(':react-native-gesture-handler')

您可以在这里阅读更多关于编译和实现之间的差异:What';在Gradle中实现和编译有什么区别?


反应本机手势处理程序

如果react-native-gesture-handler正在使用或覆盖不推荐使用的API,您可以在它们的repo上标记问题,或者通过发出pull请求自行解决问题。

不推荐的api可以在没有警告的情况下删除,从而使依赖关系不可用/不稳定。不推荐使用的api也可能存在缺陷,这就是它们被推荐使用的原因,这些可能会在将来给您带来问题。

但由于使用react-navigation时需要使用react-native-gesture-handler,因此您的能力有点有限。

正如我已经说过的,有几个选项:标记问题,用pull请求自己修复它,在修复react-native-gesture-handler之前不要使用它react-navigation,或者你可以使用它

相关内容

  • 没有找到相关文章

最新更新