Gradle Build failed for the task "processBasicDebugResources" error: com.github.javaparser.TokenMgrError

Gradle Build failed for the task "processBasicDebugResources" error: com.github.javaparser.TokenMgrError

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

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

错误指出问题出在 Superscript char \u00b3,但是,我没有在资源文件中添加它。

为了调试这个问题,我 运行 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

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

你说:

There was some update to the XML resource file for ES Strings. After the changes with these String the Build fails with below error:

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

发生了什么事

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

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

如何修复它(一般修复)

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

  <string name="SUPERSCRIPT THREE">&#x00b3</string>

如何修复(具体)

不清楚您如何或为何使用 com.github.javaparser to process your resource strings instead of the default (as I know it) XmlPullParser(您没有共享您的 build.gradle 文件)。很明显您使用的是旧版本(在这方面有已知错误)。要升级:

dependencies {
    compile 'com.github.javaparser:javaparser-core:3.5.5'
}

链接

参见 Special-characters-in-your-XML

此问题之前被报告为错误:

https://netbeans.org/bugzilla/show_bug.cgi?id=270350

但这个错误是由像 "\u00b3"

这样的 unicode 字符引起的

此问题已在上一版本中关闭并修复:

https://github.com/javaparser/javaparser/issues/1159 https://github.com/javaparser/javaparser/issues/404 https://github.com/javaparser/javaparser/pull/411

升级到最新版本!