Предупреждение после установки реакции-навигации в собственном проекте реагирования - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в React Native.Я изучаю навигацию, поэтому я начал с нового собственного реактивного проекта и следовал инструкциям на веб-сайте React Navigation ( реагировать на документацию ):

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) Измените MainActivity.java, как сказано на веб-сайте для Android

Затем, когда я запускаюкоманда react-native run-android, я вижу приложение в моем телефоне, как и ожидалось, но появляется следующее сообщение:

Настройка проекта: приложение ПРЕДУПРЕЖДЕНИЕ: конфигурация 'compile' устарела и была заменена на 'внедрение'и «API».Он будет удален в конце 2018 года. Для получения дополнительной информации см .: http://d.android.com/r/tools/update-dependency-configurations.html

Задача: response-native-жест-обработчик: compileDebugJavaWithJavac Примечание: / home / ana / code / реагировать на native / seeCompileError / node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/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"
  }
}

Буду признателен за любую подсказку или помощь, спасибо.

1 Ответ

0 голосов
/ 29 декабря 2018

Компиляция против реализации

Когда вы используете react-native link, это добавляет зависимость в ваш файл build.gradle;в зависимости от того, как была установлена ​​зависимость, он добавляет ее с compile или implementation.Это легко исправить, вы можете просто вручную изменить его на implementation

Так что в вашем build.gradle (Модуль: приложение) вы можете изменить

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

до

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

Подробнее о различиях между компиляцией и реализацией вы можете прочитать здесь: В чем разница между реализацией и компиляцией в Gradle?


act-native-жест-обработчик

Если react-native-gesture-handler использует или отменяет устаревшие API, вы можете отметить проблему в их репозитории или исправить ее самостоятельно, сделав запрос на извлечение.

Устаревшие API могут быть удалены без предупреждения, что делает зависимость непригодной / нестабильной.У устаревших API также могут быть недостатки, поэтому они устарели, и это может вызвать проблемы в будущем.

Но так как вам требуется использовать react-native-gesture-handler при использовании react-navigation, вы немного ограничены в том, что вы можете сделать.

Как я уже сказал, есть несколько вариантов: пометить проблему, исправить ее самостоятельно с помощью pull-запроса, не использовать react-navigation, пока react-native-gesture-handler не будет исправлено, или вы можете использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...