Java 在何处设置nullpointerexception
我是开发安卓应用程序的新手。。当我在模拟器中运行程序时,它会强制关闭。。我发现我需要设置一个nullpointerexception,但我不知道在哪里设置这些东西。。请帮帮我 公共类SampleActivity扩展了活动{Java 在何处设置nullpointerexception,java,eclipse,Java,Eclipse,我是开发安卓应用程序的新手。。当我在模拟器中运行程序时,它会强制关闭。。我发现我需要设置一个nullpointerexception,但我不知道在哪里设置这些东西。。请帮帮我 公共类SampleActivity扩展了活动{ TextView dp_octet1, dp_octet2, dp_octet3, dp_octet4, dp_slashes; int i = 0; int j = 0; int octet[]; @Override public void onCreate(Bundle
TextView dp_octet1, dp_octet2, dp_octet3, dp_octet4, dp_slashes;
int i = 0;
int j = 0;
int octet[];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sample);
iniTextView();
generatingRandomIpAddress();
}
private void generatingRandomIpAddress() {
Random i = new Random(); //Random number between 0-2
if(i.nextInt(3)==0){
octet[0] = 8+(i.nextInt(22));
octet[1] = 1+(i.nextInt(126));
}
if(i.nextInt(3)==1){
octet[0] = 16+(i.nextInt(14));
octet[1] = 128+(i.nextInt(63));
}
if(i.nextInt(3)==2){
octet[0] = 24+(i.nextInt(6));
octet[1] = 192+(i.nextInt(31));
}
octet[2] = (i.nextInt(255));
octet[3] = (i.nextInt(255));
octet[4] = (i.nextInt(255));
//Display the problem
dp_slashes.setText(octet[0]);
dp_octet1.setText(octet[1]);
dp_octet2.setText(octet[2]);
dp_octet3.setText(octet[3]);
dp_octet4.setText(octet[4]);
}
private void iniTextView() {
// TODO Auto-generated method stub
dp_octet1 = (TextView) findViewById(R.id.octet1);
dp_octet2 = (TextView) findViewById(R.id.octet2);
dp_octet3 = (TextView) findViewById(R.id.octet3);
dp_octet4 = (TextView) findViewById(R.id.octet4);
dp_slashes = (TextView) findViewById(R.id.slashes);
}
原木猫
08-05 09:11:07.180:D/AndroidRuntime(1286):关闭虚拟机
08-05 09:11:07.180:W/dalvikvm(1286):threadid=1:线程以未捕获异常退出(组=0x4001d800)
08-05 09:11:07.203:E/AndroidRuntime(1286):致命异常:主
08-05 09:11:07.203:E/AndroidRuntime(1286):java.lang.RuntimeException:无法启动活动组件信息{com.example.myscatches/com.example.myscatches.SampleActivity}:java.lang.ArrayIndexOutOfBoundsException
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)上
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.os.Handler.dispatchMessage(Handler.java:99)上
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.os.Looper.loop(Looper.java:123)上
08-05 09:11:07.203:E/AndroidRuntime(1286):位于android.app.ActivityThread.main(ActivityThread.java:4627)
08-05 09:11:07.203:E/AndroidRuntime(1286):位于java.lang.reflect.Method.Invokenactive(本机方法)
08-05 09:11:07.203:E/AndroidRuntime(1286):位于java.lang.reflect.Method.invoke(Method.java:521)
08-05 09:11:07.203:E/AndroidRuntime(1286):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-05 09:11:07.203:E/AndroidRuntime(1286):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-05 09:11:07.203:E/AndroidRuntime(1286):在dalvik.system.NativeStart.main(本机方法)
08-05 09:11:07.203:E/AndroidRuntime(1286):由以下原因引起:java.lang.ArrayIndexOutOfBoundsException
08-05 09:11:07.203:E/AndroidRuntime(1286):在com.example.myscatches.SampleActivity.generatingRandomIpAddress(SampleActivity.java:32)
08-05 09:11:07.203:E/AndroidRuntime(1286):在com.example.myscratches.SampleActivity.onCreate(SampleActivity.java:24)
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)上
08-05 09:11:07.203:E/AndroidRuntime(1286):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)上
08-05 09:11:07.203:E/AndroidRuntime(1286):…还有11个在开始为其元素赋值之前,您需要初始化
八位字节。将声明更改为:
int octet[] = new int[4];
或者,添加以下行:
octet = new int[4];
在开始分配给octet
的元素之前,执行以下操作:generatingRandomIpAddress()
另外,将来,当您请求异常帮助时,您应该发布logcat输出,显示异常的堆栈跟踪。我不确定这是否适用于ADT,但如果我有一段Java代码,其中抛出了NullPointerException,并且我必须找出它被抛出的位置,我会执行以下操作之一:e如下:
检查堆栈跟踪
放置一个异常断点
对于上面的#2,请看。如果在设置此断点时选择“Uncaught”,则在引发任何NullPointer异常时,执行应自动停止