android - tutorial - Los complementos de Gradle de terceros pueden ser la causa
gradle run (17)
Después de actualizar a Android Studio 3.1, recibí este mensaje de error:
El proyecto funciona bien y esto es principalmente solo una advertencia, así que mi pregunta es cuál es el significado de la advertencia y cómo puedo deshacerme de ella.
Las partes relevantes de los archivos gradle:
Este es el
build.gradle
mi proyecto
buildscript {
ext {
kotlin_version = ''1.2.31''
anko_version = ''0.10.4''
room_version = ''1.0.0''
support_version = ''27.1.0''
firebase_version = ''12.0.0''
gms_version = ''12.0.0''
}
repositories {
google()
jcenter()
maven { url ''https://dl.bintray.com/kotlin/kotlin-dev'' }
maven { url ''https://maven.fabric.io/public'' }
}
dependencies {
classpath ''com.android.tools.build:gradle:3.1.0''
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url ''https://dl.bintray.com/kotlin/kotlin-dev'' }
}
}
Y este es el archivo
build.gradle
mi aplicación:
apply plugin: ''com.android.application''
apply plugin: ''kotlin-android''
apply plugin: ''kotlin-android-extensions''
apply plugin: ''kotlin-kapt''
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
Configuración bajo demanda con Gradle 4.6 y superior: si está utilizando Android Gradle Plugin 3.0.xo 3.1.x con Gradle 4.6 y superior, debe desactivar la configuración bajo demanda para evitar algunos errores de compilación impredecibles. (Si está utilizando Android Gradle Plugin 3.2.0 o superior, no necesita realizar ninguna acción para deshabilitar la configuración a pedido).
Deshabilite la configuración a pedido en su archivo gradle.properties como se muestra a continuación:
org.gradle.configureondemand = false Para deshabilitar la configuración a pedido en la configuración de Android Studio, elija Archivo> Configuración (Android Studio
Preferencias en Mac), seleccione la categoría Compilador en el panel izquierdo y desactive la casilla de verificación Configurar bajo demanda.
En Android Studio 3.2 Beta 1 y superior, se han eliminado las opciones para habilitar la configuración bajo demanda. Lea la sección de problemas conocidos del siguiente enlace. ingrese la descripción del enlace aquí
-
eliminar el
apply plugin: ''kotlin-kapt''
-
agregue
mavenCentral()
en build.gradle como:allprojects { repositories { mavenCentral() google() jcenter() } }
- Proyecto de sincronización y limpieza
Agregar otra respuesta para aquellos que
no pudieron eliminar la
Instant App Provision
, porque sigue apareciendo de nuevo.
Cree el proyecto manualmente:
./gradlew assembleDebug
Es una revisión, pero funcionará (porque el problema probablemente esté relacionado con Android Studio).
Aquí está el enfoque para solucionar este problema en mi caso:
En primer lugar, actualice su versión de complemento de gradle de Android desde el archivo de construcción de proyecto gradle y luego actualice su versión de gradle desde las propiedades de gradle.
Finalmente actualice su versión de kotlin (obligatoria) a kotlin_version = ''1.2.30'' o posterior desde el archivo gradle de compilación del proyecto.
Ahora intenta limpiar tu proyecto y compilar. El problema debe resolverse. Cada vez después de la compilación, si vuelve a compilar, es probable que el problema vuelva a ocurrir, así que simplemente limpie su proyecto nuevamente y luego compílelo.
Aquí hay algunos pasos que he seguido y se ha solucionado el problema en mi caso.
- En primer lugar, instale la versión del complemento kotlin en ''1.2.31'' y actualícela en el archivo build.gradle como se muestra a continuación.
dependencias {classpath ''com.android.tools.build:gradle:3.1.0'' classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31"}
-
Proyecto limpio.
-
Finalmente reconstruir el proyecto.
Aquí hay algunos pasos que he seguido. ¡En mi caso se solucionó el problema!
Módulos de plataforma dirigidos a Android La actualización de la característica de proyectos experimentales multiplataforma presenta soporte para módulos de plataforma Android. Estos módulos deben aplicar el complemento correspondiente en el script de compilación de Gradle y pueden usar el código compartido de un módulo común:
apply plugin: ''com.android.application''
apply plugin: ''kotlin-platform-android''
apply plugin: ''kotlin-android''
apply plugin: ''kotlin-kapt''
// ...
// ...
Ubicaciones de diagnóstico de Kapt A partir de ahora, kapt, la herramienta de procesamiento de anotaciones de Kotlin, puede ofrecer enlaces a ubicaciones en el código de Kotlin original en lugar de los apéndices Java generados, ya que informa los errores encontrados durante el procesamiento de la anotación. Puede habilitar esta función agregando estas líneas al script de compilación de Gradle (build.gradle):
kapt {
mapDiagnosticLocations = true
}
Agrega esto:
allprojects {
repositories {
jcenter()
google()
}
}
No olvides lo siguiente:
// Architecture Component - Room
implementation "android.arch.persistence.room:runtime:1.1.0-beta1"
kapt "android.arch.persistence.room:compiler:1.1.0-beta1"
// Lifecyles, LiveData and ViewModel
kapt ''com.android.databinding:compiler:3.1.0''
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.1.1"
// alternatively, just ViewModel
implementation "android.arch.lifecycle:viewmodel:1.1.1"
// alternatively, just LiveData
implementation "android.arch.lifecycle:livedata:1.1.1"
kapt "android.arch.lifecycle:compiler:1.1.1"
// Room (use 1.1.0-beta1 for latest beta)
implementation "android.arch.persistence.room:runtime:1.0.0"
kapt "android.arch.persistence.room:compiler:1.0.0"
// Paging
implementation "android.arch.paging:runtime:1.0.0-alpha7"
// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.1.1"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
-
Limpia tu proyecto
-
¡Construye y ya está!
Agregue todo esto, limpie su proyecto, construya y ¡eso es todo! :) ¡Hazme saber si esto funciona! (Si no te funciona, te ayudaré con otra solución)
Más información: Sitio de Android :) ¡Avíseme si funciona! (Si no funciona, intentaré ayudarte a encontrar una mejor manera)
Si das un downVote explica por qué
Bueno, descubrí que se debe al
apply plugin: ''kotlin-kapt''
de
apply plugin: ''kotlin-kapt''
, si eliminas esta línea en build.gradle (aplicación), entonces construirás con éxito ...
No tengo idea de por qué este complemento genera estas advertencias.
En mi caso, ninguna de las soluciones anteriores resolvió mi problema, estaba usando la versión 1.2.50 Kotlin sin mencionar a Instant Run, y la compilación no estaba generando las clases Dagger, así que descubrí esta pregunta que resolvió mi problema, aparentemente , en mi situación, es un problema relacionado con la nueva versión de Kotlin, así que bajé a la versión 1.2.41 y funcioné bien. Por cierto, acabo de rastrear hasta ese punto porque utilicé la Vista de alternar en la pantalla de compilación.
1: Seleccione la Vista de alternancia y cree su proyecto
2: Podrás ver exactamente qué sucedió
Pregunta de : Kotlin 1.2.50 pide baseFeatureInfoDir
Rastreador de problemas: https://issuetracker.google.com/issues/110198434
En realidad, también estaba enfrentando el mismo error. Lo que hice fue actualizar mi versión de Kotlin a la latest . Esto puede resolver su problema.
Esto sucede porque el procesador de anotaciones Kapt usa este directorio para almacenar los archivos generados por Kotlin. Android actualmente no reconoce la ruta de forma predeterminada.
Ver más detalles
Intente eliminar la ejecución instantánea de la configuración y gradle estará listo.
Funcionó para mi.
Lo que realmente me ayudó es agregar esto
kapt {
generateStubs = true
}
en build.gradle
Lo que solucionó el problema para mí:
-
Cambiar la versión del complemento gradle a
3.1.0
-
Cambie la versión de Kotlin a
1.2.30
-
Luego, Android Studio cambió el gradle wrapper a la versión
4.4
-
Luego, Android Studio decía que la versión de herramientas de compilación utilizada era
27.0.3
y que debería cambiarla a27.0.3
así que también cambié el SDK de destino a27
-
Agregué esto a mi gradle.build:
kapt { generateStubs = true }
Espero que ayude
Reinicié Android Studio y el problema desapareció.
Haga clic en Archivo -> Invalidar cachés / reiniciar
Cada vez que cambio el archivo gradle, debo reiniciar Android Studio o el problema vuelve.
También puedes probar esto:
-
Repositorios reordenados a:
mavenCentral() maven { url ''https://jitpack.io'' } google() jcenter()
-
Borrar esta carpeta: ~ / .gradle / caches del usuario y eliminar la carpeta de compilación de la aplicación manualmente, luego limpiar y reconstruir .
Tuve este problema al usar
Realm
con Kotlin en Android Studio.
Para resolver, siga estos pasos:
-
Después de agregar Realm al proyecto build.gradle, asegúrese de que el archivo build.gradle de su aplicación sea así:
apply plugin: ''com.android.application'' apply plugin: ''kotlin-android'' apply plugin: ''kotlin-android-extensions'' apply plugin: ''kotlin-kapt'' apply plugin: ''realm-android'' . . . androidExtensions { experimental = true }
-
Use
kapt
lugar deannotationProcessor
en sus dependencias build.gradle de su aplicación. -
Vaya a
Run -> Edit Configurations..
y elimine la opciónInstant App Provision
. -
Ejecute este comando en la terminal de Android Studio:
gradlew assembleDebug
-
Está bien !
Nota: Si vuelve a ver el mensaje "Los complementos de Gradle de terceros pueden ser la causa", repita los pasos 3 y 4.
en android studio v3.1.2, suceda Error:
Folder D:/AndroidProjects/app/build/generated/source/kaptKotlin/debug
Folder D:/AndroidProjects/app/build/generated/source/kaptKotlin/release
3rd-party Gradle plug-ins may be the cause
porque el uso de dataBinding utiliza el
apply plugin: ''kotlin-kapt''
así que agregue
kapt {
generateStubs = true
}
- Cambiar la versión del complemento gradle a 3.1.2
- Cambie la versión de Kotlin a 1.2.30
- Luego, Android Studio cambió el gradle wrapper a la versión 4.4
- Luego, Android Studio decía que la versión de herramientas de compilación utilizada era 27.1.1 y que debería cambiarla a 27.1.1, así que también cambié el SDK de destino a 27