【问题标题】:Gradle Build failed for the task "processBasicDebugResources" error: com.github.javaparser.TokenMgrErrorGradle Build 因任务“processBasicDebugResources”错误而失败:com.github.javaparser.TokenMgrError
【发布时间】:2017-12-01 09:33:48
【问题描述】:

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

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

错误表明问题出在上标字符 \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

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

【问题讨论】:

  • 简单错误stackoverflow.com/a/6501158/4592448解决你的错误。
  • ES Strings 是什么意思?
  • 西班牙语字符串
  • @Timson 你用的是最新版本吗?
  • 是的,这是最新版本@Jorgesys

标签: android gradle android-gradle-plugin android-build


【解决方案1】:

你说:

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

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 来处理您的资源字符串,而不是默认的(据我所知)XmlPullParser(您尚未共享您的build.gradle 文件)。很明显,您使用的是旧版本(该区域存在已知错误)。升级:

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

链接

Special-characters-in-your-XML

【讨论】:

  • 依赖更新后,错误似乎解决了!
【解决方案2】:

这个问题之前被报告为错误:

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

升级到最新版本!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2014-01-09
    • 2020-03-16
    • 2021-08-07
    相关资源
    最近更新 更多