首页 > 解决方案 > 谷歌 6 月 17 日 Firebase SDK 更新后,Ionic Cordova 应用程序停止编译

问题描述

在具有重大更改的 Firebase 主要版本更新后,我无法编译 Ionic Cordova 应用程序,特别是 2019 年 6 月 17 日更新。

我尝试降级到 Android Cordova 6.3.0,但我的项目必须是 7.0.0。

这是我的离子信息:

@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

这是我得到的错误:

: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: 错误: 资源 android:attr/fontVariationSettings 未找到。

C:\Users\mmzep.gradle\caches\transforms-1\files-1.1\core-1.0.0.aar\73b4a83ab5e76f20c84a66b1c8444d08\res\values\values.xml:133:5-70: AAPT: 错误: 资源 android:未找到 attr/ttcIndex。

C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: 错误:资源 android:attr/fontVariationSettings 不成立。C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: 错误:资源 android:attr/ttcIndex 不成立。错误:链接引用失败。

执行 aapt 失败

com.android.ide.common.process.ProcessException:无法执行 aapt

标签: androidfirebasecordovaionic-frameworkionic3

解决方案


此构建失败是由于6 月 17 日Google Play 服务和 Firebase 库的主要版本发布。

新的库版本具有以下要求:

  • 升级com.android.tools.build:gradle到 v3.2.1 或更高版本。
  • 升级compileSdkVersion到 28 或更高版本。
  • 更新您的应用以使用 Jetpack (AndroidX)

前两个要求可以通过更新使用来解决cordova-android@8.0.0

第三个要求您的 Android 项目迁移到使用 AndroidX (Jetpack)。 AndroidX是广泛使用的Android 支持库的继承者。AndroidX 现在被最新版本的 Play Services/Firebase 库使用,而 Support 库被许多现有插件使用,例如cordova-plugin-firebase。这两个库不能在同一个 Android 构建中并存——这样做会导致构建失败。

要解决此问题,请在 Cordova 项目中添加以下两个插件:

有关如何在测试项目中进行尝试的工作示例,请参阅我对这个 Github 问题的评论

注意:如果您使用cordova-plugin-firebase并遇到错误,您可以改用我的该插件的分支,该插件已发布cordova-plugin-firebasex并已修复以解决由新 Firebase SDK 引起的问题:

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

推荐阅读