Android Cordova构建失败(任务':app:processDebugResources'的执行失败)[Cordova / Vuejs]

时间:2019-06-18 09:11:06

标签: javascript android cordova vue.js

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

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

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

任何人都无法解决这个问题,我尝试构建/清理失败。

谢谢。

3 个答案:

答案 0 :(得分:1)

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

显然,这与Google启动新版本的support-v4和api级更新有关

link表示安装 cordova-android-support-gradle-release 插件可以解决此问题。

在platform / android目录的build.gradle中添加以下代码

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

就我而言,它没有解决,但我可能做错了,希望它可以解决。

---更新1

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

  • 将com.android.tools.build:gradle升级到v3.2.1或更高版本。
  • 将compileSdkVersion升级到28或更高版本。
  • 更新您的应用程序以使用Jetpack(AndroidX);请遵循Migrating to AndroidX.
  • 中的说明

对于Cordova应用程序,我仍然不知道如何确切地反映这些更改,而且我正处于我的应用程序更新的发布周期的中间,无法构建,这真的很可悲:(< / p>

---更新2

我现在已经找到了解决方案,方法是编辑platform / android目录中的project.properties文件。

我将此文件中的所有库都由“ +”更改为固定版本号,该版本号早于17日发布的版本号,您可以检查此here,但这仍然不是最佳解决方案,因为如果您需要删除并重新包含平台,则可以删除此文件。

---更新3

正如Leonardo所解释的,发生此问题的原因是firebase和play服务库的更新以及cordova依赖项的自动更新。可以使用项目根目录中build-extras.gradle文件中的 configurations.all 代码来解决此问题,并使用钩子将安装程序副本自动复制到 platform / android ,如link

中所述

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

答案 1 :(得分:1)

在项目的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命令上的自动依赖项更新,但是我认为这是不可能的。

答案 2 :(得分:1)

由于Firebase库的“ android X”的最新更新而在此问题中苦苦挣扎了两天:

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

解决方案如下:  确保以下内容:

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

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

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