转换期间的一般错误:java.lang.NoClassDefFoundError:org / codehaus / groovy / grails / commons / ApplicationAttributes

时间:2018-08-02 01:52:56

标签: grails

运行grails时出现以下异常。最近,我已将grails从2.x版本升级到3.3.6。请让我知道我想念的东西。谢谢转换期间出现常规错误:java.lang.NoClassDefFoundError:org / codehaus / groovy / grails / commons / ApplicationAttributes

java.lang.RuntimeException:java.lang.NoClassDefFoundError:org / codehaus / groovy / grails / commons / ApplicationAttributes         在org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1123)         在org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1101)         在org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624)         在org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602)         在org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579)         在org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)         在org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:174)         在org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:56)         在org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler $ CompilerWorkerAdapter.execute(AbstractDaemonCompiler.java:73)处         在org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler $ CompilerWorkerAdapter.execute(AbstractDaemonCompiler.java:64)处         在org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:29)         在org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler $ CompilerDaemonServer.execute(AbstractDaemonCompiler.java:91)处         在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处         在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         在java.lang.reflect.Method.invoke(Method.java:498)

2 个答案:

答案 0 :(得分:0)

如果该类已包含在您的代码中,则该类已移至JSONArray jsonArr = new JSONArray(lineRead); List<Data> dataList = new ArrayList<>(); for (int i = 0; i < jsonArr.length(); i++) { JSONObject jsonObj = jsonArr.getJSONObject(i); Data data = new Data(); data.foodid = jsonObj.getString("FOODID"); data.price = jsonObj.getString("PRICE"); data.num = jsonObj.getString("NUM"); data.res = jsonObj.getString("RES"); dataList.add(data); } ,因此,请将其更新为新软件包。如果插件中的它似乎需要更新版本或将其删除(或者可以将其升级到Grails 3个旧文档)

答案 1 :(得分:0)

groovy 编译过程中的这个 bug,即

General error during instruction selection: java.lang.NoClassDefFoundError:

可能由于 3-4 件事而发生

  1. 未声明具有所需依赖项的特定模块。
  2. 依赖项已声明,但可以在 build.gradle 文件中使用“implementation”而不是“api”进行声明。
  3. 依赖项已声明,但由于编译类路径中同时存在“编译”和“实现”依赖项的混合,编译过程可能会变得混乱。最好将它们全部移动到新的 gradle 样式并避免 'compile' 和 'testCompile' 依赖项。
  4. 由于某些类(另一个模块的)使用一个版本的 jar 编译,而其他一些类使用更新的版本编译,因此编译过程变得混乱。最好的方法是对所有模块进行适当的干净构建。