Gradle Build因任务"processBasicDebugResources"错误而失败:com.github.javaparser.TokenMgrError

Tim*_*son 5 android gradle android-build android-gradle-plugin

ES Strings的XML资源文件有一些更新.使用这些String更改后,Build失败并显示以下错误:

Error:com.github.javaparser.TokenMgrError: Lexical error at line 5563, column 57.  Encountered: "\u00b3" (179), after : ""
Run Code Online (Sandbox Code Playgroud)

该错误表明该问题与Superscript char\u00b3有关,但是,我没有在资源文件中添加它.

要调试此问题,我使用stacktrace直接从终端运行Gradlew,它提供了以下详细信息:

Caused by: com.github.javaparser.TokenMgrError: Lexical error at line 5563, column 57.  Encountered: "\u00b3" (179), after : ""
    at com.github.javaparser.ASTParserTokenManager.getNextToken(ASTParserTokenManager.java:2480)
    at com.github.javaparser.ASTParser.jj_scan_token(ASTParser.java:9115)
    at com.github.javaparser.ASTParser.jj_3R_92(ASTParser.java:5504)
    at com.github.javaparser.ASTParser.jj_3_5(ASTParser.java:5574)
    at com.github.javaparser.ASTParser.jj_2_5(ASTParser.java:5198)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:944)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBody(ASTParser.java:865)
    at com.github.javaparser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:470)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:932)
    at com.github.javaparser.ASTParser.ClassOrInterfaceBody(ASTParser.java:865)
    at com.github.javaparser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:470)
    at com.github.javaparser.ASTParser.TypeDeclaration(ASTParser.java:398)
    at com.github.javaparser.ASTParser.CompilationUnit(ASTParser.java:203)
    at com.github.javaparser.JavaParser.parse(JavaParser.java:111)
    at com.github.javaparser.JavaParser.parse(JavaParser.java:158)
    at com.github.javaparser.JavaParser.parse(JavaParser.java:177)
    at butterknife.plugin.FinalRClassBuilder.brewJava(FinalRClassBuilder.java:36)
    at butterknife.plugin.FinalRClassBuilder$brewJava.call(Unknown Source)
    at butterknife.plugin.ButterKnifePlugin$_apply_closure1$_closure2$_closure3$_closure4.doCall(ButterKnifePlugin.groovy:34)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:596)
    at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:577)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
    ... 70 more
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何解决这个问题,任何想法!

Jon*_*win 0

你说:

XML字符串的资源文件进行了一些更新ES。更改这些字符串后,构建失败并出现以下错误:

Error:com.github.javaparser.TokenMgrError: Lexical error at line 5563, column 57.  Encountered: "\u00b3" (179), after : ""
Run Code Online (Sandbox Code Playgroud)

发生了什么

在您的西班牙语 文件中 ,第 5563 行第 57 列res/values-es/strings.xml有一个unicode charachter, (U+00B3) ('SUPERSCRIPT THREE')。

(请记住Android strings.xml资源文件是UTF-8编码的)。

如何修复(一般修复)

strings.xml这是在( )中对该字符进行编码的方式&#x00b3

  <string name="SUPERSCRIPT THREE">&#x00b3</string>
Run Code Online (Sandbox Code Playgroud)

如何解决(具体)

目前尚不清楚您如何或为何使用com.github.javaparser来处理您的资源字符串,而不是默认(据我所知)XmlPullParser(您尚未共享您的build.gradle文件)。很明显,您使用的是旧版本(该领域存在已知错误)。升级:

dependencies {
    compile 'com.github.javaparser:javaparser-core:3.5.5'
}
Run Code Online (Sandbox Code Playgroud)

链接

请参阅XML 中的特殊字符