【问题标题】:Android Cordova build failed (Execution failed for task ':app:processDebugResources') [Cordova / Vuejs]Android Cordova 构建失败(任务':app:processDebugResources'的执行失败)[Cordova / Vuejs]
【发布时间】:2019-06-18 09:11:06
【问题描述】:

在我在 android “cordova run android / cordova build”上运行 Cordova 后,我收到以下错误:

FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务 ':app:processDebugResources' 执行失败。 执行 aapt 失败

任何想法我们如何解决这个问题我都试过 build/clean 没有工作。

提前致谢。

【问题讨论】:

  • 使用 --stacktrace 选项了解更多信息。无论如何,您使用的是哪个 Android API?
  • @PedroSerpa 我已经尝试过了。公元前我有同样的问题。什么都不显示
  • @PedroSerpa 追踪没有给我任何额外信息。

标签: javascript android cordova vue.js


【解决方案1】:

由于 Firebase 库的“android X”上次更新,在这个问题上苦苦挣扎了两天:

https://developer.android.com/jetpack/androidx/migrate

解决方案如下: 确保以下几点:

  • 将 com.android.tools.build:gradle 升级到 v3.2.1 或更高版本。
  • 将 compileSdkVersion 升级到 28 或更高版本。 .更新您的应用以使用
  • 喷气背包(AndroidX);按照迁移到 AndroidX 中的说明进行操作。

对于 Cordova 项目,只需添加以下插件:

这些插件将修复构建错误。 一切都会正常工作:)..

【讨论】:

    【解决方案2】:

    在项目的platform/android文件夹中添加build-extras.gradle:

    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'
        }
    }
    

    通过这种方式,您将强制构建忽略特定服务的更新,并使用以前的版本。

    而且您不需要更改任何插件(也不需要更改 android 平台版本):)

    PS 每次更新firebase的库时都会发生这种情况..非常烦人。我希望能够关闭 build 命令的自动依赖更新,但我认为这是不可能的。

    【讨论】:

    • 感谢您的回复,但是当我检查平台/android 文件夹时,没有 build-extras.gradle 文件!!!
    • 您可以创建一个名为 build-extras.gradle 的新文件(正是这个扩展名)并将上面的代码复制到里面(无需额外的代码或语法)。
    • @MohammadBitar 如果您有 v6 或 v7,该文件夹应该是平台/android。我认为 v8 和 v9 有一个额外的子文件夹 /app
    • 有时值得这样做:删除 android 平台,然后 Cordova 清理,添加 platform@desired 版本,Cordova 准备,覆盖 gradle,构建
    【解决方案3】:

    我遇到了同样的问题,周五我正常进行了构建,周一再次尝试执行时,我收到错误“任务执行失败”:app:processDebugResources'”以及 Aapt2Exception 上的一些堆栈跟踪:AAPT2 错误.

    显然这与 Google 推出新版本的 support-v4 和 api-level 更新有关

    这个link 说安装 cordova-android-support-gradle-release 插件可以解决问题。

    在platforms/android目录下的build.gradle中添加如下代码

    configurations.all {
        resolutionStrategy.force 'com.android.support:support-v4:27.1.0'
    }
    

    在我的情况下它没有解决,但我可能做错了什么,我希望它会解决。

    --- 更新 1

    2019 年 6 月 17 日,Google 发布了 Google Play 服务库和 Firebase 的更新,相信我们的问题与此直接相关。他们推荐以下设置:

    • 将 com.android.tools.build:gradle 升级到 v3.2.1 或更高版本。
    • 将 compileSdkVersion 升级到 28 或更高版本。
    • 更新您的应用以使用 Jetpack (AndroidX);按照Migrating to AndroidX. 中的说明进行操作

    在 Cordova 应用程序的情况下,我仍然不知道如何准确反映这些更改,而且我正处于我的应用程序更新的发布周期中,无法构建,真的很难过 :(

    --- 更新 2

    我现在通过编辑位于 platform/android 目录中的 project.properties 文件找到了解决方案。

    我把这个文件中所有的libs作为“+”改成了17日发布的版本号之前的固定版本号,你可以查看这个here但这仍然不是最佳解决方案因为如果您需要删除并重新包含平台,可以删除此文件。

    --- 更新 3

    正如Leonardo 解释的那样,由于firebase 和play 服务库的更新以及cordova 依赖项的自动更新而发生此问题。可以使用项目根目录中 build-extras.gradle 文件中的 configurations.all 代码 + 自动将设置复制到 platform/ 中的钩子来解决此问题androidlink

    中所述

    PS:对不起,我的英语不好。

    【讨论】:

    • 我同意你的观点,我正在发布中间,我不知道如何解决这个问题,我会尝试你的答案。也许它会解决我的问题
    • 我试过你的解决方案,但仍然给出其他错误:依赖失败:com.google.firebase:firebase-messaging:17.0.0 -> com.google.firebase:firebase-iid@[16.0.0 ],但 fire base-iid 版本是 19.0.0。
    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 2018-12-18
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多