一个不长遇到的BUG:java.lang.Error: Static initializer

本文详细阐述了解决J2ME平台下出现的java.lang.Error: Static initializer: java/lang/NullPointerException的问题。通过检查加载的类及其静态属性、方法的初始化顺序,最终发现并修正了错误。

今天运行程序的时候,总是出现BUG:java.lang.Error: Static initializer: java/lang/NullPointerException。由于开始修改了很多东西才运行,所以实在一下子不知道是什么地方引起的。而且由于是在J2ME平台,报错的地方定位确实不准确。后来就DeBug,但是DeBug也不能定位。最后只好查资料了,国内的,国外的都看了,还是没有对应的信息。

没办法,只有自己解决了,很明显,Static initializer是静态初始化的意思。就我所知,正常情况下,在加载一个类的时候,会先调用它的Static属性和方法。这个时候,我就开始查到底加载了什么类,然后这个类里面有什么static的属性或者方法有问题。最后发现,静态属性的初始化顺序弄错了。把还没有初始化的属性先使用。这就导致了这样的java/lang/NullPointerException。

java.lang.NoClassDefFoundError: Could not initialize class org.springframework.beans.CachedIntrospectionResults at org.springframework.beans.BeanUtils.getPropertyDescriptors(BeanUtils.java:505) at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:822) at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:748) at com.huawei.driveinsight.logservice.service.AsyncLogAnalyseTaskService.queryDdiLogListByNamePrefix(AsyncLogAnalyseTaskService.java:457) at com.huawei.driveinsight.logservice.service.AsyncLogAnalyseTaskService.getLogAnalyseItem(AsyncLogAnalyseTaskService.java:422) at com.huawei.driveinsight.logservice.service.AsyncLogAnalyseTaskService.handleLogAnalyseTask(AsyncLogAnalyseTaskService.java:176) at com.huawei.driveinsight.logservice.service.AsyncLogAnalyseTaskServiceTest.should_return_task_when_create_task(AsyncLogAnalyseTaskServiceTest.java:214) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NullPointerException [in thread "main"] at java.base/java.util.zip.ZipFile$Source$Key.hashCode(ZipFile.java:1400) at java.base/java.util.HashMap.hash(HashMap.java:338) at java.base/java.util.HashMap.getNode(HashMap.java:568) at java.base/java.util.HashMap.get(HashMap.java:556) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1442) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:718) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:252) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:181) at java.base/java.util.jar.JarFile.<init>(JarFile.java:346) at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103) at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72) at java.base/sun.net.www.protocol.jar.JarFileFactory.getOrCreate(JarFileFactory.java:106) at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:132) at java.base/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:175) at org.springframework.core.io.UrlResource.getInputStream(UrlResource.java:250) at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:134) at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:123) at org.springframework.core.io.support.SpringFactoriesLoader.loadFactoriesResource(SpringFactoriesLoader.java:337) at org.springframework.core.io.support.SpringFactoriesLoader.lambda$forResourceLocation$2(SpringFactoriesLoader.java:327) at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) at org.springframework.core.io.support.SpringFactoriesLoader.forResourceLocation(SpringFactoriesLoader.java:326) at org.springframework.core.io.support.SpringFactoriesLoader.forDefaultResourceLocation(SpringFactoriesLoader.java:293) at org.springframework.core.io.support.SpringFactoriesLoader.loadFactories(SpringFactoriesLoader.java:249) at org.springframework.beans.CachedIntrospectionResults.<clinit>(CachedIntrospectionResults.java:78)
最新发布
11-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值