我正在使用 Netbeans。我用绑定做了一些事情,现在每当我启动我的程序时,甚至在它初始化表单之前,它都会给我一个错误
thread main 中的异常发生在表单甚至是初始化对象之前。表单甚至还不是对象。我
main()
中的每一行都会导致异常。随机的东西。完全看不懂
这是error.
Exception in thread "main" java.lang.ExceptionInInitializerError
at obd2ner.main(obd2ner.java:26)
Caused by: java.lang.ClassCastException
at java.lang.Class.cast(Class.java:2990)
at org.jdesktop.beansbinding.Binding.convertForward(Binding.java:1312)
at org.jdesktop.beansbinding.Binding.getSourceValueForTarget(Binding.java:844)
at org.jdesktop.beansbinding.Binding.refreshUnmanaged(Binding.java:1222)
at org.jdesktop.beansbinding.Binding.refresh(Binding.java:1207)
at org.jdesktop.beansbinding.AutoBinding.tryRefreshThenSave(AutoBinding.java:162)
at org.jdesktop.beansbinding.AutoBinding.bindImpl(AutoBinding.java:199)
at org.jdesktop.beansbinding.Binding.bindUnmanaged(Binding.java:959)
at org.jdesktop.beansbinding.Binding.bind(Binding.java:944)
at org.jdesktop.beansbinding.BindingGroup.bind(BindingGroup.java:143)
at OBD2nerForm.initComponents(OBD2nerForm.java:731)
at OBD2nerForm.<init>(OBD2nerForm.java:75)
at Status.<clinit>(Status.java:41)
... 1 more
Java Result: 1
OBD2nerForm
线731
是bindingGroup.bind();
有时会出错pack();
main()
中的异常甚至看起来都不相关,因为它在程序运行时立即发生,每次我注释掉一行时它都会跳转到下一行
public void actionPerformed(ActionEvent evt) {
jFormattedTextField2ActionPerformed(evt);
}
});
jLabel8.setText("Data In Que:");
jLabel9.setFont(new Font("DejaVu Sans", 0, 14));
jLabel9.setText("FFFFFFFFFFFFFFFFFFFF");
GroupLayout jPanel5Layout = new GroupLayout(jPanel5);
jPanel5.setLayout(jPanel5Layout);
jPanel5Layout.setHorizontalGroup(
jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jPanel5Layout.createSequentialGroup()
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jPanel5Layout.createSequentialGroup()
.add(19, 19, 19)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jLabel7)
.add(jLabel5)
.add(jLabel6))
.add(18, 18, 18)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(GroupLayout.TRAILING, jFormattedTextField1, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(GroupLayout.TRAILING, jCheckBox1)
.add(GroupLayout.TRAILING, jCheckBox11))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox12)
.add(jCheckBox2))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox13)
.add(jCheckBox3))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox14)
.add(jCheckBox4))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox15)
.add(jCheckBox5))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox16)
.add(jCheckBox6))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox17)
.add(jCheckBox7))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(jCheckBox18)
.add(jCheckBox8))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(GroupLayout.TRAILING, jFormattedTextField9, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
.add(GroupLayout.TRAILING, jCheckBox19)
.add(GroupLayout.TRAILING, jCheckBox9))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jCheckBox20)
.add(jCheckBox10)
.add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)))
.add(jPanel5Layout.createSequentialGroup()
.add(4, 4, 4)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jPanel5Layout.createSequentialGroup()
.add(jLabel8)
.addPreferredGap(LayoutStyle.RELATED)
.add(jLabel9, GroupLayout.PREFERRED_SIZE, 256, GroupLayout.PREFERRED_SIZE))
.add(jSeparator1, GroupLayout.PREFERRED_SIZE, 474, GroupLayout.PREFERRED_SIZE))))
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.add(GroupLayout.TRAILING, jPanel5Layout.createSequentialGroup()
.addContainerGap(346, Short.MAX_VALUE)
.add(jToggleButton3, GroupLayout.PREFERRED_SIZE, 132, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jPanel5Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE)
.add(jLabel5)
.add(jFormattedTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField9, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(LayoutStyle.RELATED)
.add(jSeparator1, GroupLayout.PREFERRED_SIZE, 0, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jCheckBox3)
.add(jCheckBox1)
.add(jCheckBox2)
.add(jCheckBox4)
.add(jCheckBox5)
.add(jCheckBox6)
.add(jCheckBox7)
.add(jCheckBox8)
.add(jCheckBox9)
.add(jLabel6)
.add(jCheckBox10))
.addPreferredGap(LayoutStyle.RELATED)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
.add(jLabel7)
.add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
.add(jCheckBox13)
.add(jCheckBox12)
.add(jCheckBox11)
.add(jCheckBox14)
.add(jCheckBox15)
.add(jCheckBox16)
.add(jCheckBox17)
.add(jCheckBox18)
.add(jCheckBox19)))
.add(jCheckBox20))
.addPreferredGap(LayoutStyle.RELATED, 42, Short.MAX_VALUE)
.add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE)
.add(jToggleButton3)
.add(jLabel8)
.add(jLabel9))
.addContainerGap())
);
jTabbedPane1.addTab("tab6", jPanel5);
add(jTabbedPane1, BorderLayout.CENTER);
bindingGroup.bind();
pack();
}// </editor-fold>
求助,没看懂。你需要我提供什么信息?
编辑: 似乎都是我无法触摸的代码。我可能应该补充一点,这是从 Netbeans 开始的,添加了大约 200 个无效导入
import jCheckbox1
,我删除了它。
如果在静态初始化块中出现问题,你会得到一个 ExceptionInInitializerError。
class C
{
static
{
// if something does wrong -> ExceptionInInitializerError
}
}
因为静态变量是在静态块中初始化的,所以也有这些错误的来源。一个例子:
class C
{
static int v = D.foo();
}
=>
class C
{
static int v;
static
{
v = D.foo();
}
}
所以如果 foo() 变乱,你会得到一个 ExceptionInInitializerError。
希望这有帮助...
class SomeClass{
//Code snippet here...
}
代码片段 1:绝对可以 - 所有已检查的异常都已处理
static void m1(){
try{
throw new Exception();
} catch(Exception e){
System.out.println(e);
}
}
static{
m1();
}
代码片段 2:无法编译 - 未报告的已检查异常
static void m1() throws Exception{
throw new Exception();
}
static{
m1();
}
代码片段 3:OK(见代码片段 1)
static void m1() throws Exception{
throw new Exception();
}
static{
try{m1();}
catch(Exception e){
System.out.println(e);
//or whatever
}
}
代码片段4:编译错误,initilalizer必须能够正常完成
static{
throw new RuntimeException();
}
基本上归结为:
这是有道理的,因为类应该能够正常完成初始化。如果这恰好是一个问题,则应将其归类为错误(通常很难或不可能从中恢复)而不是异常(通常可以恢复)...
@Christian Ullenboom 的解释是正确的。
我猜测您发布的
OBD2nerForm
代码是一个静态初始化程序块,并且它都是生成的。基于此和堆栈跟踪,生成的代码似乎很可能会出错,因为它发现表单的某些组件没有它期望的类型。
我会做以下尝试和诊断:
我怀疑根本原因是您的表单设计有些不寻常(或不正确),以及 NetBeans 表单生成器中无法处理您的表单的错误。如果你能弄清楚,解决方法可能会自行显现。
我发现我把
jFormattedCheckBox1.foreground
绑定到jCheckBox1[${selected}]
....这就是问题所在。谢谢你的帮助。
看来一个颜色应该不能绑定一个
boolean
。我想绑定是一个高级功能?
我通过删除所有控件,然后运行,然后撤消然后一次删除一个来找到问题。当我找到有问题的控件时,我检查了属性。
只要静态块中出现错误或异常,就会抛出这个异常。要了解此异常的原因,只需使用
Throwable.getCause()
即可知道问题所在。
Retrofit
最近更新到2.7.1版本。在那之后Android 4.x
客户崩溃了。请参阅https://stackoverflow.com/a/60071876/2914140。
降级
Retrofit
到2.6.4.
我得到了同样的错误,这是由于旧的 Lombok 版本。 检查并更新您的 Lombok 版本, 龙目岛的变化
v1.18.4 - lombok 的 JDK10/11 支持的许多改进。
如果你使用的是 Mac M1 芯片和房间库,试试这个: 在项目级build.gradle中,在allprojects中添加如下配置
allprojects {
repositories {
// ...
}
// ADD THE FOLLOWING
configurations.all {
resolutionStrategy {
force 'org.xerial:sqlite-jdbc:3.34.0'
}
}
}
If you are working on Cucumber framework (Automating testing) below suggestion will work like an arrow.
**Info Cukes dependency with IO Cucumber**
Remove below dependencies
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>provided</scope>
</dependency>
Add below dependencies
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.2.2</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.2.2</version>
<scope>test</scope>
</dependency>
<dependency>
确保项目没有任何错误。从工作区中删除项目(使工作区与 git 文件夹不同的目录)并再次导入。