Error al configurar SDK: Error: Módulo 'app': plataforma 'Google Inc.: API de Google: 21' no encontrado

Failed to set up SDK: Error:Module 'app': platform 'Google Inc.:Google APIs:21' not found. 

En una pérdida completa de por qué esto no está funcionando. Intenté actualizar mi SDK a 23 pero me di cuenta que no estaba preparado para hacer frente a todas las nuevas depreciaciones, etc., así que volví a una versión anterior en Mercurial. No he hecho literalmente nada más, y la reversión debería haber resuelto todo. Por desgracia, estoy bloqueado no puede conectar mi aplicación y construirla. Incluso he reinstalado Android Studio desde cero, pero sigo recibiendo la misma advertencia y mi aplicación no se construirá en absoluto. ¿Qué podría estar saliendo mal?

Aquí está mi grado de construcción:

 apply plugin: 'com.android.application' android { compileSdkVersion 'Google Inc.:Google APIs:21' buildToolsVersion '21.1.2' defaultConfig { applicationId "com.elgami.customizer" minSdkVersion 14 targetSdkVersion 21 } buildTypes { release { minifyEnabled false //runProguard false //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } repositories { mavenCentral() maven { url "https://jitpack.io" } } dependencies { compile 'com.ogaclejapan.smarttablayout:library:1.5.0@aar' compile 'com.github.antonyt:InfiniteViewPager:v1.0.0' compile 'com.android.support:appcompat-v7:22.2.0' // recyclerview compile 'com.android.support:recyclerview-v7:23.1.1' // google analytics compile 'com.google.android.gms:play-services-analytics:8.3.0' // pager sliding strip compile 'com.astuetz:pagerslidingtabstrip:1.0.1' // http library (for using beanstream REST) compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1' // amaazon S3 uploads compile 'com.amazonaws:aws-android-sdk-s3:2.1.+' // paypal purchasing compile files('libs/PayPalAndroidSDK-2.7.1.jar') // Module dependency on ParseLoginUI library sources compile project(':ParseLoginUI') // Parse libs compile files('libs/ParseCrashReporting-1.9.2.jar') compile files('libs/Parse-1.9.1.jar') compile files('libs/ParseFacebookUtilsV4-1.9.1.jar') // android support v4 compile files('libs/android-support-v4.jar') // facebook SDK compile 'com.facebook.android:facebook-android-sdk:4.1.0' //butterknife compile 'com.jakewharton:butterknife:6.1.0' // Subsampling-scale-image-view (for templating) //compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.1.4' compile files('libs/AppRater.jar') } 

Puede utilizar compileSdkVersion 21 lugar del suyo.

  android { compileSdkVersion 21 buildToolsVersion '21.1.2' defaultConfig { applicationId "com.elgami.customizer" minSdkVersion 14 targetSdkVersion 21 } buildTypes { release { minifyEnabled false //runProguard false //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } 

La respuesta (actualmente aceptada) que sugiere reemplazar Google Inc.:Google APIs:21 con 21 NO es adecuada si tiene alguna aplicación heredada que todavía utiliza Google Map v1 (por ejemplo).

Si usted está en esta situación REALMENTE necesita compilar contra Google Inc.:Google APIs:21 o 23 etc …

La solución aquí es

Paso 1

Abra la interfaz del gestor de SDK antiguo haciendo clic en el enlace Iniciar el gestor de SDK independiente debajo del Administrador de SDK de Android Studio o ejecutando ${ANDROID_SDK_DIR}/tools/android sdk desde la línea de comandos para abrirlo directamente.

A continuación, busque las API de Google para la versión de SDK que necesita e instálela:

Captura de pantalla del SDK Manager

Ese paquete está oculto, por alguna razón, en Android Studio y espero que Google lo elimine en algún momento. Actualmente el SDK 24 (Marshmallow) está disponible, pero el 25 (Nougat) no lo es, pueden agregarlo en el futuro, o no. Tendremos que esperar y ver.

Si se encuentra en esta situación y Google decide dejar de proporcionarlo tendrá que volver a escribir la funcionalidad utilizando mapas v2.

Paso 2

Incluso después de hacer esto y limpieza + gradle resync obtendrá este error De Android Studio:

 Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory. 

Pero se compilará si intenta hacerlo desde la línea de comandos ( ./gradlew assembleDebug ).

La razón tiene aparentemente algo que ver con el Android Studio incrustado Java JRE. Para que se compile dentro de Android Studio, abra la Estructura del proyecto de Android Studio y proporcione una ruta personalizada para un JDK instalado en su sistema (debe instalar OpenJDK / OracleJDK en su computadora).

NOTA : puede ser necesario navegar a la ubicación en lugar de copiar la ruta de acceso de Android Studio para tomar el cambio. No elija el directorio jre , seleccione el JDK (carpeta que contiene jre ).

ADVERTENCIA : este cambio no es específico del proyecto pero se aplicará a Android Studio y se utilizará en cualquier otro proyecto.

  • Android - obteniendo clave hash para la integración de Facebook
  • ¿Qué SDK de Android debo usar ahora?
  • Un entorno de ejecución Java (JRE) o Java Development Kit (JDK) debe estar disponible para ejecutar Eclipse
  • No se pudo obtener la URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, razón: La conexión a https://dl-ssl.google.com se rechazó
  • ¿Dónde puedo encontrar el simulador oficial de tabulación de galaxias para el androide SDK?
  • Android SDK r18 parece haber roto ORMLite
  • Escáner de huellas digitales con cámara
  • Superpowered SDK: Implementación de SuperpoweredRecorder.h y configuración de rutas de grabación
  • Dispositivo no autorizado: no se permite el pago desde este dispositivo
  • Cómo tomar la captura de pantalla mediante programación y guardarlo en la galería?
  • Desbloqueo de Android Facebook 4.0 mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.