Раздел плагинов в Android основной проект build.gradle и недостающие модули - PullRequest
0 голосов
/ 12 января 2020
  1. Я получаю следующую ошибку:

СБОЙ СОСТАВА В 56s ОШИБКА: Плагин [id: 'de.undercouch.download'] не был найден ни в одном из следующих Источники:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)

Я хочу знать об этом разделе плагинов.

Я ищу в следующем руководстве:

Плагины в Android Gradle

Но это по частям, и я хочу увидеть полный пример файла build.gradle.


Как интегрировать следующее в "/nbproject":

/@react-native-community/cli-platform-android/native_modules.gradle

Все, что я вижу, - это следующая папка в пути:

/@react-native-community/cli

Отсутствует react-native-unimodules в /nbproject. В конце этого поста мои настройки. Gradle: Итак, какую команду я должен использовать вместо:

npm install


//apply from: "../../node_modules/react-native-unimodules/gradle.groovy"
apply from: "/Users/lion/Documents/Project/ReactNative/Libraries/rn_mac_kitchensync/node_modules/react-native-unimodules/gradle.groovy"
include ':react-native-screens'
project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')
include ':react-native-reanimated'
project(':react-native-reanimated').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-reanimated/android')
include ':react-native-gesture-handler'
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
//==
include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
//
include ':ReactAndroid'
//
project(':ReactAndroid').projectDir = new File(
        rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
//
includeUnimodulesProjects()
//includeUnimodules([
//        modulesPaths: ['../../node_modules']
//])

rootProject.name = 'NativebaseKitchenSink'

include ':app'

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Для пункта 1. Я просто случайно изучил build.gradle в пути, где я мог увидеть запись для отсутствующих плагинов:

"/node_modules/react-native/ReactAndroid"

Это объявление было в моих настройках .gradle:

//
include ':ReactAndroid'
//
project(':ReactAndroid').projectDir = new File(
        rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
//

В build.gradle моего основного проекта я поместил:

plugins {
    id "de.undercouch.download" version "4.0.2"
}

над allprojects {} секцией.

Вместо этого используйте это в ваш путь к классу зависимостей:

//noinspection GradleDependency
classpath 'de.undercouch:gradle-download-task:4.0.0'

Но я думаю, что он не был сгенерирован после вызова:

npm install

Мне пришлось снова вызывать эту команду после удаления моего каталога "/nbproject".


Для пунктов 2: Пожалуйста, перейдите по ссылке:

GIT: Реагируйте на Native Community для android платформы

Они говорят это не является обязательным и больше не используется. См. ReadMe:

Сообщество React Native: ReadMe

Также убедитесь, что вы используете последнюю версию ReactNative:

package. json :

{
  "name": "NativebaseKitchenSink",
  "version": "2.12.0",
  "private": true,
  "devDependencies": {
    "babel-eslint": "7.2.3",
    "eslint": "4.4.1",
    "eslint-plugin-flowtype": "2.35.0",
    "eslint-plugin-import": "2.7.0",
    "eslint-plugin-jsx-a11y": "6.0.2",
    "eslint-plugin-prettier": "2.1.2",
    "eslint-plugin-react": "7.1.0",
    "eslint-plugin-react-native": "3.0.1",
    "flow-bin": "0.78.0",
    "flow-typed": "2.5.1",
    "husky": "0.14.3",
    "jest": "24.1.0",
    "metro-react-native-babel-preset": "0.52.0",
    "prettier": "1.5.3",
    "react-test-renderer": "16.6.3"
  },
  "scripts": {
    "start": "react-native start",
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "postinstall": "jetify",
    "and_bundle": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res"
  },
  "jest": {
    "preset": "react-native",
    "transformIgnorePatterns": [
      "node_modules/(?!(react-native|lottie-react-native|expo|react-native-maps|react-native-svg|react-native-branch|native-base-shoutem-theme|react-native-easy-grid|react-native-drawer|react-native-vector-icons|react-native-keyboard-aware-scroll-view|react-native-swiper|react-navigation|native-base|@expo|react-native-scrollable-tab-view|react-native-simple-modal|react-native-iphone-x-helper)/)"
    ]
  },
  "dependencies": {
    "color": "1.0.3",
    "expo": "^35.0.0",
    "expo-cli": "^3.4.1",
    "lodash": "4.17.10",
    "moment": "2.13.0",
    "native-base": "2.12.1",
    "prop-types": "^15.6.2",
    "react": "16.9.0",
    "react-base": "^0.2.0",
    "react-native-new": "0.61.5",
    "react-native": "0.59.10",
    "react-native-gesture-handler": "^1.0.15",
    "react-native-vector-icons": "^6.3.0",
    "react-navigation": "3.3.0",
    "scheduler": "^0.12.0",
    "styled-components": "^3.4.5"
  }
}

Для точки 3:

Из файла ReadMe для этого модуля:

response-native-unimodules

Эта библиотека содержит базовую инфраструктуру Unimodule и коллекцию Unimodules и интерфейсов, которые обычно зависят от других Unimodules. Вам нужно будет установить это перед использованием библиотек из Foundation, таких как expo-camera, expo-media-library и др.

Примечание: react-native-unimodules пока не совместимы с React Native 0.60.x.

Установка

Самый простой способ сделать это - инициализировать "голый" проект с expo-cli, используя expo init --template bare-minimum.

Если у вас уже есть приложение вместо этого вы можете выполнить следующие действия. Этот проект требует, чтобы вы использовали CocoaPods на iOS, чтобы настроить его, см. эту суть или соответствующие части этого руководства .

Установить пакет

bash npm установить response-native-unimodules

Следовательно, используйте response-native: 0.59.10 вместо последнего.

0 голосов
/ 12 января 2020

См. plugins . Этот блок обычно относится к верху, но также может находиться внизу build.gradle. С Android DSL довольно обычно использовать apply plugin: "de.undercouch.download" или apply from: "...". Для плагинов Gradle значения repositories и classpath всегда должны быть определены в блоке buildscript. Обычно это как минимум 2 build.gradle и на GitHub есть примеры.

...