无法初始化全局对象

Posted

技术标签:

【中文标题】无法初始化全局对象【英文标题】:Cannot init the Global object 【发布时间】:2015-06-26 20:27:31 【问题描述】:

我正在将 Play 2.3 项目转换为 Play 2.4,并将之前的 Global 对象替换为 ErrorHandler,如迁移指南中所述。但是,当我尝试运行该项目时,出现错误:

Cannot init the Global object

No source available, here is the exception stack trace:
java.lang.AbstractMethodError: Global$.play$api$GlobalSettings$_setter_$play$api$GlobalSettings$$dhehCache_$eq(Lscala/Function1;)V
     play.api.GlobalSettings$class.$init$(GlobalSettings.scala:33)
     Global$.<init>(Global.scala:52)
     Global$.<clinit>(Global.scala)
     sun.misc.Unsafe.ensureClassInitialized(Native Method)
     sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
     sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142)
     java.lang.reflect.Field.acquireFieldAccessor(Field.java:1088)
     java.lang.reflect.Field.getFieldAccessor(Field.java:1069)
     java.lang.reflect.Field.get(Field.java:393)
.....

等等。

项目中没有全局对象,但据我了解,这就是它应该的样子(因为它们已被弃用)。我已经完成了干净的编译等,但没有帮助。

关于我应该从哪里开始查找错误有什么想法吗?

【问题讨论】:

【参考方案1】:

解决了这个问题;最终找到了一个试图使用 GlobalSettings 对象的依赖项。删除它解决了问题。

【讨论】:

以上是关于无法初始化全局对象的主要内容,如果未能解决你的问题,请参考以下文章

使用临时函数对象进行全局初始化

Flutter 全局材料本地化和初始化日期格式无法协同工作

Heremei C++

当用户更改全局对象时重新初始化合并发布者

重点关注:C++全局变量初始化

重点关注:C++全局变量初始化