研发效能 JavaParser 解析代码报错处理记录,java.lang.NoSuchMethodError: 'java.lang.String javassist.bytecode.LocalVariableAttribute.variableNameByIndex(int)

机械师 · 2025年05月16日 · 1582 次阅读

缺少 Javassist 依赖。javaparser 依赖包有三个,在引入 javaparser 包的同时,需要将这三个依赖包同时引入,在 Maven 仓库搜索 Javaparser 可见。

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.30.2-GA</version>
</dependency>
Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.String javassist.bytecode.LocalVariableAttribute.variableNameByIndex(int)'
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getVariableName(JavassistUtils.java:270)
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.extractParameterName(JavassistUtils.java:262)
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodLikeDeclarationAdapter.getParam(JavassistMethodLikeDeclarationAdapter.java:73)
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodDeclaration.getParam(JavassistMethodDeclaration.java:106)
    at com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration.getSignature(ResolvedMethodLikeDeclaration.java:70)
    at com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration.getQualifiedSignature(ResolvedMethodLikeDeclaration.java:81)
    at com.github.javaparser.resolution.logic.MethodResolutionLogic.lambda$distinctByKey$1(MethodResolutionLogic.java:600)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at com.github.javaparser.resolution.logic.MethodResolutionLogic.findMostApplicable(MethodResolutionLogic.java:632)
    at com.github.javaparser.resolution.logic.MethodResolutionLogic.findMostApplicable(MethodResolutionLogic.java:612)
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.solveMethod(JavassistUtils.java:129)
    at com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(JavassistClassDeclaration.java:194)
    at com.github.javaparser.resolution.logic.MethodResolutionLogic.solveMethodInType(MethodResolutionLogic.java:909)
    at com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethod(MethodCallExprContext.java:164)
    at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(JavaParserFacade.java:296)
    at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(JavaParserFacade.java:133)
    at com.github.javaparser.symbolsolver.JavaSymbolSolver.resolveDeclaration(JavaSymbolSolver.java:190)
    at com.github.javaparser.ast.expr.MethodCallExpr.resolve(MethodCallExpr.java:332)
    at cn.xdf.legolas.parser.converter.filter.MethodCallFilter.isFilteredMethodCall(MethodCallFilter.java:41)
    at cn.xdf.legolas.parser.ParserDemo.lambda$main$0(ParserDemo.java:88)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at cn.xdf.legolas.parser.ParserDemo.main(ParserDemo.java:87)
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册