android - Meteor APK 构建与 accounts-google 中断

标签 android meteor oauth apk

我们不能再使用 accounts-google 构建我们的 APK。显然,这是一个严重的阻塞问题。

就在两天前,这个版本还运行良好。现在看来,谷歌又一次打破了一些东西。

产生问题的步骤:

$ meteor 创建 broken-gooogle-oauth-test

$ cd broken-gooogle-oauth-test

$ meteor add-platform android

$ meteor 添加帐户-google

$ meteor build --verbose ~/test-build --server= http://www.example.com

或者...

$ meteor run 安卓设备

无论哪种方式,您最终都会看到一长串错误消息,从以下内容开始:

    /home/mad/.gradle/caches/transforms-1/files-1.1/core-1.0.0.aar/37baf6a1e42da25347f527a778e640b7/res/values/values.xml:133:5-70: AAPT: error: resource android:attr/fontVariationSettings not found.

    /home/mad/.gradle/caches/transforms-1/files-1.1/core-1.0.0.aar/37baf6a1e42da25347f527a778e640b7/res/values/values.xml:133:5-70: AAPT: error: resource android:attr/ttcIndex not found.

    /home/mad/androidTest3/.meteor/local/cordova-build/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values.xml:92: error: resource android:attr/fontVariationSettings not found.
    /home/mad/androidTest3/.meteor/local/cordova-build/platforms/android/app/build/intermediates/incremental/mergeReleaseResources/merged.dir/values/values.xml:92: error: resource android:attr/ttcIndex not found.
    error: failed linking references.

    Failed to execute aapt
    com.android.ide.common.process.ProcessException: Failed to execute aapt
        at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
        at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
        at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
        at sun.reflect.GeneratedMethodAccessor184.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Failed to execute aapt

最佳答案

原因是 6 月 17 日更新了 google android 库,使 API 28 成为所需的最低 SDK 版本。 API 28 引入了一些新的 XML 属性,例如错误中引用的 ttcIndexfontVariationSettings

在这种情况下,有问题的插件是 com.google.android.gms:play-services-authcom.google.android.gms:play-services-identity

不幸的是,除了破解 .meteor/local 中的 meteor 输出外,没有简单的方法来解决这个问题。有两种方法:

  1. 强制使用 API 28(显然您需要下载所需的 API 文件)
  2. cordova-plugin-googleplus 中的 :+ 版本要求更改为支持 API 27 的最新版本(例如,6 月 17 日之前)。

选项 1 是最干净的,如果你可以管理它,在 .meteor/local/cordova-build/platforms/android 编辑 project.properties 并设置 target=android-28

选项 2 更难,但如果您还没有准备好将所有内容更新为 API 28 则更好。您需要编辑插件 plugin.xml 文件或找到这些文件在某处的 .gradle 文件。

关于android - Meteor APK 构建与 accounts-google 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56665019/

相关文章:

android - 设置 ListPreference 的默认值

android - 图像保存到 SD 卡覆盖现有文件

json - 如何设置项目中文件的路径?

oauth - 使用 OAuth 2 进行单点注销

facebook - 如何检测用户的 Facebook oauth 窗口关闭操作

android - 蓝牙 RFCOMM 连接无法在 Android 4.2 上连续建立

android - 将自动对焦放在android相机类中的位置

meteor Stripe 元素不渲染

javascript - Meteor 上的物化视差初始化

json - Google OAuth - 验证访问 token 时 JSON 不正确