android - La aplicación Ionic Cordova dejó de compilarse después de la actualización del 17 de junio de Firebase SDK de Google
ionic-framework ionic3 (6)
1. Primera respuesta
We
creado un PR para este
https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/13
pero eso requiere una actualización de
cordova-android
a
8.0.0
.
Se está haciendo una solución para
cordova-android
7.x pero, mientras tanto, también se está discutiendo si se debe mantener el soporte o no.
2. Editar - 19 de junio de 2019
Se
lanza
una nueva versión
v3.3.0
para solucionar el problema causado por la versión de Google Firebase que admite
cordova-android <= 7.1.4
.
https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/14#issuecomment-503499409
cordova plugin remove cordova-plugin-firebase-lib
# Or if you were using original fork
#cordova plugin remove cordova-plugin-firebase
cordova plugin add [email protected]
3. Editar - 20 de junio de 2019
Se
lanza
una nueva versión
v4.0.1
para solucionar el problema causado por la versión de Google Firebase que admite
cordova-android >= 8.0.0
.
https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/14#issuecomment-503499409
cordova plugin remove cordova-plugin-firebase-lib
# Or if you were using original fork
#cordova plugin remove cordova-plugin-firebase
cordova plugin add cordova-plugin-firebase-lib
No puedo compilar la aplicación Ionic Cordova después de la actualización de la versión Firebase Major con Breaking Changes, específicamente con la actualización del 17 de junio de 2019.
Intenté degradar a Android Cordova 6.3.0 pero mi proyecto debe ser 7.0.0.
Esta es mi información iónica:
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0
local packages:
@ionic/app-scripts : 3.2.1
Cordova Platforms : android 7.0.0 browser 5.0.4
Ionic Framework : ionic-angular 3.9.3
System:
Android SDK Tools : 26.1.1
Node : v8.9.1
npm : 5.5.1
OS : Windows 10
Environment Variables:
ANDROID_HOME : C:/Development/android-sdk
Misc:
backend : pro
Este es el error que estoy recibiendo:
: app: processDebugResources C: / Users / mmzep.gradle / caches / transforms-1 / files-1.1 / core-1.0.0.aar / 73b4a83ab5e76f20c84a66b1c8444d08 / res / values / values.xml: 133: 5-70: AAPT: error : recurso android: attr / fontVariationSettings no encontrado.
C: / Users / mmzep.gradle / caches / transforms-1 / files-1.1 / core-1.0.0.aar / 73b4a83ab5e76f20c84a66b1c8444d08 / res / values / values.xml: 133: 5-70: AAPT: error: recurso y android: attr / ttcIndex no encontrado.
C: / Users / mmzep / Desktop / mario / Seven / SevenPassengerApp / platforms / android / app / build / intermedios / incremental / mergeDebugResources / merged.dir / values / values. values: 95: error: resource android: attr / fontVariationSettings no encontró. C: / Users / mmzep / Desktop / mario / Seven / SevenPassengerApp / platforms / android / app / build / intermedios / incremental / mergeDebugResources / merged.dir / values / values. values: 95: error: resource android: attr / ttIndex no encontró. error: fallido enlazando referencias.
Error al ejecutar aapt
com.android.ide.common.process.ProcessException: no se pudo ejecutar aapt
Este fallo de compilación se debe a una versión de la versión principal de las bibliotecas de servicios de Google Play y Firebase el 17 de junio.
Las nuevas versiones de la biblioteca tienen los siguientes requisitos:
- Actualice
com.android.tools.build:gradle
a v3.2.1 o posterior.- Actualice
compileSdkVersion
a 28 o posterior.- Actualiza tu aplicación para usar Jetpack (AndroidX)
Los dos primeros requisitos se pueden resolver actualizando para usar
[email protected]
.
El tercero requiere que su proyecto de Android migre a AndroidX (Jetpack). AndroidX es el sucesor de la biblioteca de soporte de Android ampliamente utilizada. AndroidX ahora se usa en las últimas versiones de las bibliotecas Play Services / Firebase y la biblioteca Support se usa en muchos complementos existentes, como cordova-plugin-firebase . Las dos bibliotecas no pueden vivir lado a lado en la misma compilación de Android, ya que esto provocará un error de compilación.
Para resolver este problema, agregue los siguientes dos complementos a su proyecto de Cordova:
- AndroidX para habilitar AndroidX en el proyecto de Android.
- cordova-plugin-androidx-adapter para parchear dinámicamente el código fuente de cualquier plugin usando la Biblioteca de Soporte para usar los equivalentes de AndroidX.
Para ver un ejemplo práctico de cómo probar esto en un proyecto de prueba, vea mi comentario sobre este problema de Github .
Nota:
si está usando
cordova-plugin-firebase
y encuentra errores, puede usar
mi fork de ese plugin
que se publica como
cordova-plugin-firebasex
y está arreglado para resolver los problemas causados por el nuevo SDK de Firebase:
rm -Rf platforms/android
cordova plugin rm cordova-plugin-firebase
rm -Rf plugins/ node_modules/
npm install
cordova plugin add cordova-plugin-firebasex
cordova platform add android
Le sugiero que intente agregar su build-extras.gradle, dentro de la plataforma / carpeta de Android de su proyecto, esto:
configurations.all {
resolutionStrategy {
force ''com.android.support:support-v4:27.1.1''
force ''com.google.android.gms:play-services-tagmanager:16.0.8''
force ''com.google.android.gms:play-services-base:16.1.0''
force ''com.google.android.gms:play-services-tasks:16.0.1''
force ''com.google.android.gms:play-services-basement:16.2.0''
force ''com.google.android.gms:play-services-gcm:16.1.0''
force ''com.google.android.gms:play-services-stats:16.0.1''
force ''com.google.android.gms:play-services-location:16.0.0''
force ''com.google.android.gms:play-services-auth:16.0.1''
force ''com.google.android.gms:play-services-identity:16.0.0''
}
}
De esta manera forzará el comando de compilación para ignorar las actualizaciones y para usar las versiones anteriores. ¡Ni siquiera necesitas cambiar ningún complemento (ni la versión de la plataforma Android)!
Cada vez que se actualizan las librerías de firebase, esto sucede ... y es muy molesto. Me encantaría poder desactivar la actualización de dependencia automática en el comando de compilación, pero no creo que sea posible.
Siga la siguiente secuencia para cordova-android <= 7.1.4
plataforma cordova quitar android
complemento de cordova quitar cordova-plugin-firebase
complemento de cordova agregar [email protected]
plataforma cordova agregar android
cordova-plugin-firebase ahora se incluye en cordova-plugin-firebase-lib
Teniendo en plataforma / android / project.properties las siguientes configuraciones:
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.4=com.google.firebase:firebase-core:+
cordova.system.library.5=com.google.firebase:firebase-messaging:+
cordova.system.library.6=com.google.firebase:firebase-config:+
cordova.system.library.7=com.google.firebase:firebase-perf:+
Tuve el mismo problema (error: recurso android: attr / ttcIndex no encontrado).
[email protected] + cordova-plugin-androidx + cordova-plugin-androidx-adapter funcionó perfectamente para mí.
Gracias por esta solución.
Me pregunto si es una buena apuesta de mucho tiempo para usar esos dos complementos. Alguna opinion
ionic cordova platform remove android
ionic cordova plugin remove cordova-plugin-firebase
ionic cordova plugin add [email protected]
(Si eliminó esta instalación npm --save @ ionic-native / firebase @ 4, vuelva a instalarla)
Hubo un problema de fusión de dex en Android 7.0.0 para mí. Así que he usado Android 8.0.0
Para utilizar Android 8.0.0
ionic cordova platform add [email protected]
if required install below 2 plugin for android 8.0.0
ionic cordova plugin add cordova-plugin-androidx
y
ionic cordova cordova-plugin-androidx-adapter