Cuando ejecuto cordova build android --buildConfig xxxx --release
, aparece el siguiente error:
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
Lo extraño es que utilizo dos máquinas macOS para la compilación y obtengo este error solo en una de ellas para el mismo código.
Aquí está la salida de ./gradlew cdvPrintProps
I get en las dos máquinas:
:cdvPrintProps
cdvCompileSdkVersion=26
cdvBuildToolsVersion=27.0.3
cdvVersionCode=null
cdvMinSdkVersion=21
cdvBuildMultipleApks=true
cdvReleaseSigningPropertiesFile=release-signing.properties
cdvDebugSigningPropertiesFile=null
cdvBuildArch=null
computedVersionCode=152045989
computedArmv7VersionCode=1520459892
computedX86VersionCode=1520459894
A continuación se muestra la lista de complementos utilizados:
$ cordova plugins list
cordova-custom-config 5.0.2 "cordova-custom-config"
cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin"
cordova-open-native-settings 1.5.0 "Native settings"
cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
cordova-plugin-datepicker 0.9.2 "DatePicker"
cordova-plugin-device 2.0.1 "Device"
cordova-plugin-email 1.2.7 "EmailComposer"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-secure-storage 2.6.8 "SecureStorage"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 3.9.2 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"
ionic-plugin-keyboard 2.2.1 "Keyboard"
¿Como puedo solucionar este problema?
Respuestas:
Simplemente ponga lo siguiente en build-extras.gradle
fuente
build-extras.gradle
en la raíz de mi proyecto un código agregado para copiarlo enhooks\after_platform_add
gist.github.com/charlesbedrosian/…Google lanzó la nueva versión 28.0.0-alpha1 de com.android.support:support-v4 que está agregando 2 nuevos atributos (android: fontVariationSettings y android: ttcIndex). Algunos de los complementos utilizan las últimas bibliotecas compatibles con Android, lo que genera incompatibilidades no deseadas.
Opción 1: Instale el complemento cordova-android-support-gradle-release .
Complemento bien documentado que "alinea varias versiones de las bibliotecas de soporte de Android especificadas por otros complementos a una versión específica". Probado sin ningún comportamiento destructivo.
Lea la documentación para obtener un conjunto completo de opciones: Léame
Opción 2 : agregue el siguiente fragmento de código en build.gradle en plataformas / android
Advertencia: el código en build.gradle se sobrescribirá si quita / agrega la plataforma Android. Si no desea usar el complemento por alguna razón o de alguna manera no funciona para usted, cree un enlace y sobrescriba el archivo cada vez. Consulte el segundo comentario aquí .
Si el problema persiste, puede intentar:
O
Asegúrate de no tener una versión anterior de la aplicación instalada en el dispositivo que estás probando porque recibirás un error ambiguo cuando intente degradar la versión existente: "INSTALL_FAILED_VERSION_DOWNGRADE" y "UnhandledPromiseRejectionWarning: Rechazo de promesa no controlada"
fuente
Me está sucediendo el mismo error. Aparentemente,
com.android.support:support-v4
se lanzó una nueva versión de la biblioteca y el complemento que estoy usando se definecom.android.support:support-v4:+
como dependencia enplugin.xml
. El+
letrero significa que obtendrá la última versión (28.0.0), que parece ser incompatible con otros complementos.Pude construir una versión de desarrollo cambiando todas las dependencias de complementos de
com.android.support:support-v4:+
acom.android.support:support-v4:27.1.0
. Además, ejecutéionic cordova platform remove android
yionic cordova platform add android
. Espero que ayude, al menos para el desarrollo.fuente
Acabo de solucionar este problema yendo a la carpeta de plataforma / android y edité el
project.properties
archivo) y lo reemplacécom.android.support:support-v4:+
concom.android.support:support-v4:27.1.0
.fuente
Si realmente solo necesita una solución rápida a ese problema para ejecutar su compilación, puede intentar agregar las siguientes líneas en su archivo de plataformas / android / build.gradle:
De todos modos, configurar la versión aquí no es una solución sostenible.
fuente
Es extraño, pero funciona cuando agrego las siguientes líneas con las mismas versiones.
Estas son mis líneas relacionadas en el
platforms/android/build.gradle
archivo:En mi proyecto, el problema se produjo debido al complemento 'cordova-plugin-crosswalk-webview'.
fuente
Tengo el mismo error pero no en cordova build. Una nueva versión de las
com.android.support:appcompat-v7
dependencias y. Pero la versión incompatible está en el tercer paquete que depende decom.android.support:appcompat-v7
. Así que no puedo arreglar el tercer paquete con la solución de @avmatte .Utilice la solución de @ Sai Teja para encontrar un paquete incompatible:
Luego lo arregló con:
El código anterior fuerza la versión de dependencias.
fuente
Estaba enfrentando el mismo error. Hice una investigación completa en el directorio de complementos para com.android.support:support-v4:+ y lo reemplazó con un código de versión estático.
Para mí, com.android.support:support-v4:23.4.0 funcionó bien. No hubo necesidad de eliminar y volver a agregar la plataforma Android en ese momento.
fuente
Aquí hay una manera fácil de solucionarlo que persistirá cuando se reconstruya el directorio de la plataforma y no hay necesidad de revisar todos sus complementos para tratar de encontrar un culpable. Crea un archivo
build-extras.gradle
con estos contenidos:Luego crea el archivo
after_platform_add/010_copy_build_extras.js
con el siguiente contenido:Ahora vuelva a crear la plataforma de Android y usará la biblioteca de soporte anclada.
fuente
<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
process.argv[2]
esbuild
para mí!Encontré la solución en Ionic Forum, que fue la única solución que funcionó para mí:
Correr:
plataforma iónica cordova rm android
Correr:
plataforma ionic cordova agregar [email protected]
Correr:
complemento iónico cordova agregar cordova-plugin-androidx
Correr:
complemento iónico cordova agregar cordova-plugin-androidx-adapter
Asegúrese de que su gradle.properties tenga:
cdvMinSdkVersion = 19
Asegúrese de que su build.gradle tenga:
Asegúrese de que su config.xml tenga:
de: https://forum.ionicframework.com/t/firebase-app-unable-to-compile-on-android-with-aapt-error/166564/7
que también se maneja en la respuesta de stackoverflow: https://stackoverflow.com/a/56656680/839691
fuente
Ionic 3
aplicación anterior. ¡Gracias!Algunas de sus bibliotecas deberían usar
Encuentra cuál es, con
Y agregue esa biblioteca como un módulo si no está usando una versión específica en su última actualización (¡También plantee un problema en esa biblioteca!;))
¡Gracias a @avmatte!
EDITAR: también puede solicitar que gradle forzar la versión de la biblioteca
fuente
Ayer tuve el mismo problema de la nada. Comenzó al azar, pero a partir de la lectura, parece que tiene que ver con una actualización como se mencionó anteriormente por @ cpro90. Sin embargo, lo intenté y no pude encontrar dónde realizar el cambio manual necesario.
Finalmente, identifiqué que el problema estaba siendo causado por mi complemento cordova-plugin-crosswalk-webview. En GitHub, encontré el problema en la reproducción del complemento esta mañana, y tenía más de 520 vistas para el almuerzo.
@UNUMObile sugirió lo siguiente en el
build.gradle
archivo para forzar una versión anterior a nivel mundial:Esto funcionó de inmediato para mí y puede ayudar a otros con otros complementos que también han dependido de 'com.android.support:support-4:<28. La nueva versión 28 parece ser el problema.
Espero que esto ayude a alguien a seguir adelante.
fuente
Solo algunos consejos para el desarrollador de Kotlin:
Si sigue estas respuestas aquí, está seguro de que no tiene una
support-v4
biblioteca en su proyecto pero sigue viendo este error, por favor, eche un vistazo a laktx
biblioteca.Me acabo de dar cuenta de que estoy usando la última
1.0.0-alpha1
versión de la biblioteca ktx y aparece este error; después de cambiar de nuevo a la versión0.3
, todo volvió a la normalidad ahora.fuente
Agregue las siguientes líneas a sus plataformas / android / build.gradle
Si aún tiene problemas, intente ejecutar este comando:
fuente
En su
build.gradle
archivo agregueY en su
project.properties
archivo cambiecordova.system.library.3
acordova.system.library.3=com.android.support:support-v13:27.+
.fuente
Para los usuarios de Phonegap Build , como @catu mencionó en un comentario, pueden probar este complemento cuyo propósito es evitar fallas de compilación causadas por la inclusión de diferentes versiones de las bibliotecas de soporte .
fuente
Simplemente solucione este problema colocando las siguientes líneas de código en el archivo platform / android / app / build.gradle, justo después del bloque buildscript {}:
fuente
Tuve el mismo problema después de instalar el complemento cordova-plugin-file-opener2. Se resolvió después de hacer: Opción 1: Instalar el complemento cordova-android-support-gradle-release. complemento cordova agregar cordova-android-support-gradle-release --fetch
fuente
Otro enfoque con la misma solución es crear un gancho. Es persistente (después de la reinstalación de la plataforma), puede confirmarlo y no requiere volver a agregar la plataforma.
Gancho de inicio en la configuración
Instale la dependencia de fs en su proyecto:
Ejecutar compilación:
fuente
¡ FORMA SÚPER SIMPLE Y CORRECTA DE RESOLVERLO!
Simplemente actualice el sdk y agregue la última versión 2 de Android ... ¡y reinicie la computadora! Hecho...
Ahora tenemos tiempo para hablar de coches y deportes ...
fuente
Tuve el mismo problema y ninguna de las soluciones dadas me funcionó. La instalación de la última versión de Android SDK Build-tools (27.0.3) resolvió mi problema.
fuente
Enlace de solución
Esto se debe al complemento de compatibilidad. Elimine ese complemento si tiene una versión anterior (menos de 1.2.0 ) y configure [email protected]
Trabajando en mi caso. Gracias :)
fuente
actualizaciones a la respuesta de @Brad Pitcher:
hooks/copy_build_extras.js
config.xml
build-extras.gradle
en el directorio raízfuente
Me estaba encontrando con este problema con react native y fue causado por las siguientes líneas en mi
android/app/build.gradle
:etc ...
Aparentemente, esto se resolvió con una nueva versión 17.0.0 que rompió mi compilación.
Cambiar el + a 16.0.0 (o 16.0.1 para play-services-base) resolvió mi problema
fuente
Este problema me había estado matando durante una semana.
Al final terminé en
[email protected]
Yo alteré
android/project.properties
cambiandoEse cambio finalmente me sacó del pozo de la oscuridad del mensaje de error ttcIndex.
Entonces recibí este error
El error aparentemente se debió a un problema con la versión de Java. Luego alteré
android/build.gradle
con el siguiente cambioTambién tenga en cuenta que tengo el
cordova-android-support-gradle-release
complemento instalado, pero no tengo idea de si lo necesito.fuente
Es una entrada duplicada en values.xml en una carpeta llamada
support-compat-28.0.0-alpha1.aar
.Encontrará este archivo en Windows en
\users\YOURUSERID\.gradle\caches\transforms-1\files-1.1
Una vez dentro de esa carpeta, debe profundizar algunos niveles en values.xml .
En ese archivo, busque un elemento
<declare-styleable name="FontFamilyFont>
.En ese elemento, elimine las CUATRO líneas que contiene
android:
.Después de realizar ese cambio, puedo volver a compilar sin errores.
fuente