Проект # afterEvaluate (Closure) для проекта ': app' не может быть выполнен в текущем контексте. Реагировать родной - PullRequest
0 голосов
/ 29 июня 2019

Я пробовал существующие решения в SO, но ничего не работает .. Любое предположение, где я не прав. Я только что обновил gradle в gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

а вот мой андроид / build.gradle

wrapper {
    gradleVersion = '5.1.1'
    distributionUrl = distributionUrl.replace("bin", "all")
}

Мой Android / build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext {
    googlePlayServicesVersion = "+"
}
buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
        googlePlayServicesVersion = "15.0.1"
        googlePlayServicesAuthVersion = "15.0.1"
        firebaseVersion = "16.0.4"
    }
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        // classpath 'com.android.tools.build:gradle:3.1.2' // <--- use this version or newer
        classpath 'com.google.gms:google-services:4.2.0' // <--- use this version or newer
    }
}

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"
        }
        maven { url 'https://maven.google.com' }
        maven { url "https://jitpack.io" }
    }
}

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
  }
}

wrapper {
    gradleVersion = '5.1.1'
    distributionUrl = distributionUrl.replace("bin", "all")
}

configurations.all {
    resolutionStrategy {
        force 'com.google.android.gms:play-services-gcm:12.0.1'
   }
}

Синхронизация файла из студии Android

Здесь я прикрепляюсь через gist, так как у нас есть ограничение на количество символов при публикации напрямую.

1020 * Gist *

Ответы [ 3 ]

0 голосов
/ 04 июля 2019
  1. Переместить весь проект React Native на диск C.Откройте командную строку внутри проекта.
  2. cd android
  3. . / Gradlew clean
  4. cd ..
  5. response-native run-android

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

Надеюсь, это сработает.

0 голосов
/ 04 июля 2019

Для RN ​​0,57 попробуйте

classpath 'com.android.tools.build:gradle:3.2.0'

gradleVersion = '4.6'

Проверьте примечания к выпуску для 0.57 здесь:

https://github.com/react-native-community/releases/blob/master/CHANGELOG.md

Обновление:

для RN ​​0,57,2 Я использовал:

com.android.tools.build:gradle:3.1.4
Android studio 3.1.4
gradle 4.4

для RN ​​0,58,6 Я использовал:

 classpath 'com.android.tools.build:gradle:3.3.0'
 gradleVersion '4.7'
 Android studio 3.1.4
0 голосов
/ 02 июля 2019

Переместить раздел подпроектов внутри всех проектов:

allprojects {

{...} //The rest of your config

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
        android {
            compileSdkVersion rootProject.ext.compileSdkVersion
            buildToolsVersion rootProject.ext.buildToolsVersion
        }
    }
    }
}

}

...