Ionic:任务“:app:mergeLoggResources”执行失败

cig3rfwq  于 12个月前  发布在  Ionic
关注(0)|答案(4)|浏览(130)

当运行the cordova build android命令时,我得到这个错误。

Execution failed for task ':app:mergeDebugResources'.

当我几天前试着运行这个命令时,它使apk,但现在它不会了。我也没改变什么
我试着再次运行离子 cordova 资源,这样也许它就不会再次在图像上chrash
还有其他人有这个问题吗?这是什么原因造成的?
完整堆栈跟踪:

PS C:\school\pokemontest> cordova build android
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting)
ANDROID_HOME=C:\Users\Gebruiker\AppData\Local\Android\sdk (DEPRECATED)
Subproject Path: CordovaLib
Subproject Path: app
> Task :app:preBuild UP-TO-DATE
> Task :CordovaLib:preBuild UP-TO-DATE
> Task :CordovaLib:preDebugBuild UP-TO-DATE
> Task :CordovaLib:checkDebugManifest UP-TO-DATE
> Task :CordovaLib:processDebugManifest UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :CordovaLib:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :CordovaLib:packageDebugRenderscript NO-SOURCE
> Task :app:compileDebugRenderscript UP-TO-DATE
> Task :app:checkDebugManifest UP-TO-DATE
> Task :app:generateDebugBuildConfig UP-TO-DATE
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:generateDebugSources UP-TO-DATE
> Task :CordovaLib:compileDebugRenderscript UP-TO-DATE
> Task :CordovaLib:generateDebugBuildConfig UP-TO-DATE
> Task :CordovaLib:generateDebugResValues UP-TO-DATE
> Task :CordovaLib:generateDebugResources UP-TO-DATE
> Task :CordovaLib:packageDebugResources UP-TO-DATE
> Task :CordovaLib:generateDebugRFile UP-TO-DATE
> Task :CordovaLib:prepareLintJar UP-TO-DATE
> Task :CordovaLib:generateDebugSources UP-TO-DATE
> Task :CordovaLib:javaPreCompileDebug UP-TO-DATE
> Task :CordovaLib:compileDebugJavaWithJavac UP-TO-DATE
> Task :CordovaLib:processDebugJavaRes NO-SOURCE
> Task :CordovaLib:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug UP-TO-DATE
> Task :app:javaPreCompileDebug UP-TO-DATE
> Task :app:mainApkListPersistenceDebug UP-TO-DATE
> Task :app:generateDebugResValues UP-TO-DATE
> Task :app:generateDebugResources UP-TO-DATE

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> C:\school\pokemontest\platforms\android\app\src\main\res\drawable-pioort-xhdpi: Error: Invalid resource directory name
> Task :app:mergeDebugResources FAILED
C:\school\pokemontest\platforms\android\app\src\main\res\drawable-pioort-xhdpi: Error: Invalid resource directory name
20 actionable tasks: 1 executed, 19 up-to-date

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
C:\school\pokemontest\platforms\android\gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> C:\school\pokemontest\platforms\android\app\src\main\res\drawable-pioort-xhdpi: Error: Invalid resource directory name

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
hmae6n7t

hmae6n7t1#

经过多次尝试,我通过以下方式解决了这个问题:
1-打开config.xml
2-将widget标记的xmlns=”http://www.w3.org/ns/widgets“更改为xmlns:android=”http://schemas.android.com/apk/res/android“
3-重新生成项目

vcudknz3

vcudknz32#

我解决了问题。我删除了插件和平台Map。在那之后,我运行命令cordova prepare的插件和cordova build android再次设置一切。

des4xlb0

des4xlb03#

您可以尝试运行命令cordova clean android && cordova build android

m2xkgtsf

m2xkgtsf4#

@Four Ange给出的答案是正确的,但我只是想提供更多的解释。这是一个xml问题,更具体地说是一个xml命名空间问题。如果你把它添加到config.xml文件中:

<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
    <application android:usesCleartextTraffic="true"/>
</edit-config>

由于android:usesCleartextTraffic="true"属性(特别是android:部分),您必须在上添加一个名为android命名空间的xml命名空间。如果你不这样做,你基本上有一个格式不好的xml文档。给出的错误并没有说明这一点,这是不幸的。
解决方案是在widget标记中声明android命名空间,如下所示:

<widget
    id="org.collegeforward.portal"
    version="1.0.0" xmlns="http://www.w3.org/ns/widgets"
    xmlns:cdv="http://cordova.apache.org/ns/1.0" 
    xmlns:android="http://schemas.android.com/apk/res/android"
>

这告诉xml解析器usesCleartextTrafficandroid名称空间的一部分。当然,由于没有人再使用XML(部分原因是这样的问题),这基本上与当今世界无关。但如果你像我一样好奇,你会喜欢知道为什么事情会这样运作,或者为什么它们会这样崩溃。

相关问题