update tools studio configurar actualizar android android-studio android-gradle jcenter

tools - update gradle android studio



Error de Gradle: no se pudo encontrar ninguna coincidencia para com.android.tools.build:gradle:2.2.+ (7)

El día en que se hizo esta pregunta, 2018-12-10, hubo un problema que duró más de un día porque JCenter recibió una solicitud de Google para eliminar varios archivos binarios de su repositorio:

Google nos pidió que dejáramos de proporcionar sus binarios. Por favor, use el repositorio oficial de Google para ellos. https://twitter.com/bintray/status/1072275597315923971

Si necesita una solución inmediata, lo mejor sería agregar las dependencias que necesite directamente con su URL de Maven. Ej .: repositories { (...) maven { url ''https://dl.bintray.com/android/android-tools'' } } https://issuetracker.google.com/issues/120759347#comment3

El hilo de arriba es un buen lugar para seguir la resolución del problema, ya que aún está en curso mientras escribo esto.

Esta pregunta ya tiene una respuesta aquí:

Este es un proyecto React Native. Funcionó bien en otra máquina pero una vez que se movió a mi máquina falla.

La mayoría de las soluciones que encontré, sugerían agregar jcenter () a los repositorios de nivel de proyecto gradle.build. En mi caso, ya fue agregado.

La sincronización de Gradle falla con este error:

Could not find any matches for com.android.tools.build:gradle:2.2.+ as no versions of com.android.tools.build:gradle are available. Searched in the following locations: https://jcenter.bintray.com/com/android/tools/build/gradle/maven-metadata.xml https://jcenter.bintray.com/com/android/tools/build/gradle/ Required by: project :react-native-image-picker

Archivo build.gradle de Android:

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenLocal() mavenCentral() jcenter() dependencies { classpath ''com.android.tools.build:gradle:3.0.1'' } } allprojects { repositories { google() mavenCentral() 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 ''https://jitpack.io'' } } } ext { buildToolsVersion = "27.0.3" minSdkVersion = 19 compileSdkVersion = 26 targetSdkVersion = 26 supportLibVersion = "26.1.0" googlePlayServicesVersion = "11.8.0" androidMapsUtilsVersion = "0.5+" } subprojects { subproject -> afterEvaluate { if ((subproject.plugins.hasPlugin(''android'') || subproject.plugins.hasPlugin(''android-library''))) { android { variantFilter { variant -> def names = variant.flavors*.name if (names.contains("reactNative51") || names.contains("reactNative55")) { setIgnore(true) } } } } } } }

Aplicación build.gradle:

apply plugin: "com.android.application" import com.android.build.OutputFile /** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets * and bundleReleaseJsAndAssets). * These basically call `react-native bundle` with the correct arguments during the Android build * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the * `apply from: "../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle * bundleAssetName: "index.android.bundle", * * // the entry file for bundle generation * entryFile: "index.android.js", * * // whether to bundle JS and assets in debug mode * bundleInDebug: false, * * // whether to bundle JS and assets in release mode * bundleInRelease: true, * * // whether to bundle JS and assets in another build variant (if configured). * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants * // The configuration property can be in the following formats * // ''bundleIn${productFlavor}${buildType}'' * // ''bundleIn${buildType}'' * // bundleInFreeDebug: true, * // bundleInPaidRelease: true, * // bundleInBeta: true, * * // whether to disable dev mode in custom build variants (by default only disabled in release) * // for example: to disable dev mode in the staging build type (if configured) * devDisabledInStaging: true, * // The configuration property can be in the following formats * // ''devDisabledIn${productFlavor}${buildType}'' * // ''devDisabledIn${buildType}'' * * // the root of your project, i.e. where "package.json" lives * root: "../../", * * // where to put the JS bundle asset in debug mode * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", * * // where to put the JS bundle asset in release mode * jsBundleDirRelease: "$buildDir/intermediates/assets/release", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require(''./image.png'')), in debug mode * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require(''./image.png'')), in release mode * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", * * // by default the gradle tasks are skipped if none of the JS files or assets change; this means * // that we don''t look at files in android/ or ios/ to determine whether the tasks are up to * // date; if you have any other folders that you want to ignore for performance reasons (gradle * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ * // for example, you might want to remove it from here. * inputExcludes: ["android/**", "ios/**"], * * // override which node gets called and with what additional arguments * nodeExecutableAndArgs: ["node"], * * // supply additional arguments to the packager * extraPackagerArgs: [] * ] */ project.ext.react = [ entryFile: "index.js" ] apply from: "../../node_modules/react-native/react.gradle" /** * Set this to true to create two separate APKs instead of one: * - An APK that only works on ARM devices * - An APK that only works on x86 devices * The advantage is the size of the APK is reduced by about 4MB. * Upload all the APKs to the Play Store and people will download * the correct one based on the CPU architecture of their device. */ def enableSeparateBuildPerCPUArchitecture = false /** * Run Proguard to shrink the Java bytecode in release builds. */ def enableProguardInReleaseBuilds = false android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.sos" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" missingDimensionStrategy "RNN.reactNativeVersion", "reactNative57" ndk { abiFilters "armeabi-v7a", "x86" } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86" } } signingConfigs { release { if (project.hasProperty(''MYAPP_RELEASE_STORE_FILE'')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } } // applicationVariants are e.g. debug, release applicationVariants.all { variant -> variant.outputs.each { output -> // For each separate APK per architecture, set a unique version code as described here: // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits def versionCodes = ["armeabi-v7a":1, "x86":2] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == ''com.android.support'' && requested.name != ''multidex'') { details.useVersion "${rootProject.ext.supportLibVersion}" } } } dependencies { implementation project('':react-native-fetch-blob'') implementation project('':react-native-linear-gradient'') implementation project('':react-native-maps'') implementation project('':react-native-image-picker'') implementation project('':react-native-vector-icons'') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation "com.facebook.react:react-native:+" // From node_modules implementation project('':react-native-navigation'') implementation ''com.android.support:design:25.4.0'' implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" implementation project('':react-native-maps'') } // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into ''libs'' }

Por cierto, en el archivo build.gralde de la aplicación, el android en import com.android.build.OutputFile produce un error: no se puede resolver

Editar:

Ahora, esa parte del proceso de compilación ya se ha pasado, con éxito, pero comencé a recibir este error: Unable to find a matching configuration of project :react-native-fetch-blob: None of the consumable configurations have attributes.


El paquete react-native-vector-icons también encuentra el mismo problema.

¿Es eso causado por estos dos repositorios rotos?

https://jcenter.bintray.com/com/android/tools/build/gradle/maven-metadata.xml https://jcenter.bintray.com/com/android/tools/build/gradle/

Ambos respondieron: "No se encontró el camino solicitado".

Editar

Basado en la información de registro:

project :react-native-vector-icons com.intellij.openapi.externalSystem.model.ExternalSystemException: Could not find any matches for com.android.tools.build:gradle:2.3.+ as no versions of com.android.tools.build:gradle are available.

busque ''2.3. +'' y reemplácelo con la versión explícita # (por ejemplo, 2.3.0) El problema se resolverá.

He leído la sugerencia de Android acerca de evitar el uso de + en el código de versión, esa sugerencia podría aplicarse ahora.


Este es un nuevo problema que se abordó en la nueva versión de react-native-image-picker Vaya a su carpeta raíz y reinstale react-native-image-picker:

npm install --save react-native-image-picker

Luego, vaya a su carpeta raíz y asegúrese de que su selector de reactivo nativo de imágenes esté en la versión "^ 0.27.2"



Parece que algunos repositorios se eliminaron por error, y según un representante de Google es algo que actualmente están trabajando en la restauración:

https://issuetracker.google.com/issues/120759347#comment30

Hola de nuevo a todos,

Ahora sabemos lo que sucedió, y estamos trabajando para revertirlo de una manera sensata. Aquí hay un resumen básico del problema:

  1. Hubo algunos artefactos de com.google. * Y com.android. * Falsos / mal formados en jCenter
  2. La mayoría de estos artefactos se alojaron correctamente en maven.google.com (también conocido como google ())
  3. Si su sistema de compilación encontró la versión jCenter antes de encontrar la versión de Google Maven, su compilación se rompería
  4. Google se dio cuenta de esto y le pidió a jFrog que eliminara básicamente todo bajo com.google. * Y com.android. * Porque asumimos que todo estaba en Google Maven también.
  5. Nos equivocamos :-(
  6. Algunos artefactos eliminados de jCenter están causando errores en tus construcciones

Estamos trabajando en hacer algunas cosas:

  • Algunas bibliotecas que se eliminaron se están enviando a Google Maven. Esto incluye el complemento com.google.gms: google-services, el complemento firebase performance y Exoplayer. Intente agregar google () a sus bloques de repositorios de scripts y aplicaciones para ver si eso ayuda. Esperamos que esto ayude a muchas personas, pero no a todos. * Estamos trabajando para hacer una lista de las bibliotecas que se eliminaron incorrectamente. Algunas de las cosas eliminadas en el paso 4 anterior se hicieron por una buena razón, por lo que no queremos restaurarlas también.

Como dije antes, ¡odiamos que hayamos destruido tus construcciones y apreciamos tu paciencia mientras lo arreglamos!

  • Sam

También sugieren las siguientes soluciones alternativas mientras tanto:

https://issuetracker.google.com/issues/120759347#comment36

ESTADO

  • La biblioteca de la biblioteca de servicios de Google (com.google.gms: google-services) se ha restaurado, consulte la actualización # 31.
  • Se han enviado solicitudes a jCenter para volver a publicar todos los repositorios alojados en bintray.com/google. Los administradores de jCenter en JFrog están trabajando para que vuelvan a estar en línea para nosotros, en este punto, todo lo que podemos hacer es esperar. Esperamos que se conecten pronto. Algunas bibliotecas ya están de vuelta.
  • Algunas bibliotecas de Android / Firebase que fueron de doble uso tanto en jcenter.bintray.com como en maven.google.com faltan versiones anteriores (anteriormente alojadas en jCenter). Seguimos trabajando para volver a ponerlos en línea en jcenter.bintray.com o maven.google.com, según corresponda. Estamos trabajando con cuidado aquí para evitar volver a crear los conflictos iniciales que causaron problemas. El trabajo está en curso. Las versiones más recientes de estas bibliotecas no se ven afectadas, ya que están disponibles en maven.google.com.

Soluciones de trabajo

  1. Para la biblioteca de servicios de Google, no es necesaria ninguna solución. Esta biblioteca ya está restaurada. Otras bibliotecas en / google están en proceso de ser restauradas también.
  2. Para proyectos servidos desde bintray.com/android o bintray.com/firebase que no se están resolviendo, considere actualizar a una versión más nueva que ya esté alojada en maven.google.com. (Vea a continuación si esto no es factible.)
  3. Para proyectos de bintray.com/google, o si no puede actualizar a una versión más nueva de una biblioteca de Android o Firebase ... deberá agregar temporalmente un bloque similar al siguiente a su build.gradle:

    repositorios {maven {url " https://google.bintray.com/ $ (REPOSITORY)"}}

    Reemplace $ (REPOSITORY) con el nombre del proyecto de https://bintray.com/google .

    Para bintray.com/firebase, use " https://firebase.bintray.com/ $ (REPOSITORY)". Para bintray.com/android, use " https://dl.bintray.com/android/ $ (REPOSITORY)".

    Nuevamente, esta solución es solo temporal hasta que podamos volver a incluir todas las versiones en jCenter o reflejadas en maven.google.com.

INVESTIGACIÓN

La solicitud presentada para eliminar la lista de proyectos de jCenter parece haber sido demasiado amplia y fue enviada por otro equipo de Google que no tenía plena autoridad para realizar ese cambio. Los administradores del repositorio en Google no fueron consultados antes de que jCenter ejecutara esta solicitud. Estaremos investigando esto más en los próximos días, ahora mismo nuestra primera prioridad es restaurar el acceso a todas las versiones de las bibliotecas afectadas.

Además, parece que puede haber una mala configuración en el repositorio de Google que impide la duplicación de maven.google.com en jCenter, que a su vez fue la causa de la solicitud de eliminación inicial. La corrección de esta mala configuración puede haber evitado la necesidad de eliminar cualquier cosa. El seguimiento adicional está ocurriendo internamente.


Si no desea esperar hasta que esta biblioteca publique una versión fija, aquí le explicamos cómo puede solucionarlo:

Solo agréguelo a su build.gradle en la sección de subproyectos en la raíz (no app / gradle)

subprojects { if (project.name.contains(''react-native-image-picker'') || project.name.contains(''react-native-vector-icons'')) { buildscript { repositories { jcenter() maven { url "https://dl.bintray.com/android/android-tools/" } } } } }

el crédito va a https://github.com/akolpakov


Trate de usar la versión exacta de gradle funcionó para mí

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