离子构建android失败 - 任务processDebugResources的执行失败

时间:2015-06-04 14:00:25

标签: android cordova ionic-framework phonegap-build

我正在使用Mac Yosemite。在运行Android平台构建时出现以下故障:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Users/sairamk/Development/android-sdk-macosx/build-tools/22.0.1/aapt package -f --no-crunch -I /Users/sairamk/Development/android-sdk-macosx/platforms/android-22/android.jar -M /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/res/debug -A /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/assets/debug -m -J /Users/sairamk/projects/dummy_app/platforms/android/build/generated/source/r/debug -F /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/res/resources-debug.ap_ --debug-mode --custom-package com.ionicframework.bcgsandbox553389 -0 apk --output-text-symbols /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/symbols/debug
  Error Code:
    1
  Output:
    /Users/sairamk/projects/dummy_app/platforms/android/build/intermediates/res/debug/xml/config.xml:59: error: Error parsing XML: unbound prefix

对于IOS,构建运行完全正常。我已经安装了android SDK并配置了ANDROID_HOME和ANDROID_SDK_ROOT系统变量。

还尝试删除平台并再次添加,以使用:

创建一个干净的平台文件夹
ionic platform remove android
ionic platform add android

但没有好处。

我安装的Android SDK构建工具版本 - 19.1,20,21.1.2和22.0.1

AndroidManifest.xml偏好:

 <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="22" />

14 个答案:

答案 0 :(得分:34)

要获得更多信息以进行调试,请转到./platforms/android/文件夹并运行:

Mac用户:

gradlew --info build clean

Linux用户(感谢Pierre):

./gradlew --info build clean

Windows用户:

gradlew.bat --info build clean

这为您提供了更多细节。

我的问题以这种方式解决,发现一些文件错误地放入项目文件夹中,文件名中有空格。

答案 1 :(得分:24)

通过为phonegap添加xml命名空间(xmlns:gap =&#34; http://phonegap.com/ns/1.0")到config.xml

来解决此问题

添加后:

<widget id="com.ionicframework.yourpackagename" 
version="0.0.1" 
xmlns="http://www.w3.org/ns/widgets" 
xmlns:cdv="http://cordova.apache.org/ns/1.0"
xmlns:gap="http://phonegap.com/ns/1.0">

希望它可以帮助遇到类似问题的人。

答案 2 :(得分:3)

来自离子论坛的

  

这是因为“离子资源”服务错误。

     

在哪里运行“离子资源”命令,我查看并检查了   / resources / android / splash文件夹,我点击并打开所有这些png   文件,我发现有些图片坏了(显示为一半)。

     

所以我用“普通”png文件替换这些损坏的png文件(在   相同的文件夹),然后运行“ionic build”命令,错误是   消失了。

https://forum.ionicframework.com/t/ionic-android-build-problem/29131/7?u=bleuscyther

答案 3 :(得分:2)

但在我的情况下,它通过删除以下行解决了

    <gap:plugin name="nl.x-services.plugins.socialsharing" />

来自我的config.xml文件

答案 4 :(得分:1)

我有类似的问题。 为了找到解决方法,我创建了一个新的空白项目。 汇编和仿真很好。 我发现我的www文件夹中有问题。 经过一些倍数测试,我的一张照片得到了这个名字:'Clément.png'。 删除重音以获得'Clement.png'只是解决了我的问题.... 痛苦很多。

答案 5 :(得分:1)

如果您使用Windows进行开发,可能是因为&#34;路径名称&#34;。 Windows不允许路径名长于260个字符。因此缩短它可以解决它。

答案 6 :(得分:0)

我在Arch Linux上的干净Cordova上遇到了这个问题。为了调试这个,我按照@CapeCorder回答,发现这是zlib库缺失的。 只需安装它

sudo pacman -S lib32-zlib

效果很好;)

答案 7 :(得分:0)

是,删除以下行后构建成功

<gap:plugin name="nl.x-services.plugins.socialsharing" />

来自config.xml

答案 8 :(得分:0)

和其他人一样,我的错误是由一些可怕的隐藏文件造成的,这些文件正在绊倒。

在我的情况下,它是特殊的“图标?” OSX在任何具有自定义图标的文件夹(例如Google Drive,Dropbox等)内创建的文件。该文件实际上名为“Icon \ r \ n”,我相信java / gradle会在“\ r”(或任何意外的,未转义的字符)上绊倒。

解决方案是核实所有虚假的“Icon?”我的项目目录中的文件:

# note that this is the syntax for zsh. 
# If you're using bash test out the pattern first before including '-delete'
find ~/code/myproject/ -name Icon$'\r' -delete

答案 9 :(得分:0)

我不知道为什么,但我的android平台没有用。通过这样做解决了这个问题:

ionic platform rm android
ionic platform add android

答案 10 :(得分:0)

对我来说,原来是我在资产文件夹中的一些图像的长名称。

请注意。删除这些图像后,我仍然得到相同的错误。原因是图像保留在www文件夹中。删除了那个文件夹并且工作了!

答案 11 :(得分:0)

我使用Vue.js和Webpack生成生产文件,输出包含* .gz文件,如果放入Cordova的www /.// p>这就是问题

答案 12 :(得分:0)

就我而言,它是pushwoosh插件。

<gap:plugin name="pushwoosh-phonegap-plugin">

我们不需要删除插件。只需设置上次工作的插件版本即可。这对我有用。

<gap:plugin name="pushwoosh-phonegap-plugin"  spec="7.0.4" source="npm"/>

答案 13 :(得分:-1)

试试这个(为我工作):

  1. 卸载当前JDK
  2. 安装最新JDK
  3. 运行:cordova build --debug android