' ' is not a valid resource name character

今天将公司第三方的一个SDK从Eclipse导入到Android Studio,编译报如下错误:

C:\Users\LENOVO\Documents\dispatch\code\GQT_SDK_DEMO>gradlew :app:build --stacktrace

> Configure project :app
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Error: ' ' is not a valid resource name character

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.IllegalArgumentException: Error: ' ' is not a valid resource name character
        at com.android.builder.symbols.Symbol$Companion.validateSymbol(Symbol.kt:134)
        at com.android.builder.symbols.Symbol$Companion.createAndValidateSymbol(Symbol.kt:98)
        at com.android.builder.symbols.Symbol.createAndValidateSymbol(Symbol.kt)
        at com.android.builder.symbols.ResourceExtraXmlParser.checkForResources(ResourceExtraXmlParser.java:115)
        at com.android.builder.symbols.ResourceExtraXmlParser.parseChild(ResourceExtraXmlParser.java:90)
        at com.android.builder.symbols.ResourceExtraXmlParser.parseChild(ResourceExtraXmlParser.java:97)
        at com.android.builder.symbols.ResourceExtraXmlParser.parseChild(ResourceExtraXmlParser.java:97)
        at com.android.builder.symbols.ResourceExtraXmlParser.parseChild(ResourceExtraXmlParser.java:97)
        at com.android.builder.symbols.ResourceExtraXmlParser.parseChild(ResourceExtraXmlParser.java:97)
        at com.android.builder.symbols.ResourceExtraXmlParser.parse(ResourceExtraXmlParser.java:72)
        at com.android.builder.symbols.ResourceDirectoryParser.parseResourceDirectory(ResourceDirectoryParser.java:222)
        at com.android.builder.symbols.ResourceDirectoryParser.parseDirectory(ResourceDirectoryParser.java:119)
        at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:504)
        at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        ... 27 more
Caused by: Error: ' ' is not a valid resource name character
        at com.android.ide.common.res2.MergingException$Builder.build(MergingException.java:134)
        at com.android.ide.common.res2.ValueResourceNameValidator.validate(ValueResourceNameValidator.java:48)
        at com.android.builder.symbols.Symbol$Companion.validateSymbol(Symbol.kt:132)
        ... 52 more


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

BUILD FAILED in 3s
10 actionable tasks: 1 executed, 9 up-to-date

百度了一下,找到2篇比较有价值的:

  1. Error: ‘:’ is not a valid resource name character
  2. Error: ‘ ‘ is not a valid resource name character

然而,都不能解决我遇到的问题,日子中,根本没提示哪行代码出问题,甚至文件都没有指明!!!

最后祭出大杀器

Inspect Code:

res->Analyze->Inspect Code

《' ' is not a valid resource name character》 image.png

执行完后:

《' ' is not a valid resource name character》 image.png

双击进入文件

《' ' is not a valid resource name character》 image.png

搞定

    原文作者:chenzhenlindx
    原文地址: https://www.jianshu.com/p/0316ef72c965
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞