安卓 java.lang.IllegalStateException: Could not execute method of the activity

21

你好,我是学习安卓的新手。我在学习安卓的同时,试图制作一个对自己有些用处的应用程序。目前,我正在将一些有用的Java代码(如ping X、端口扫描)添加到我的应用程序中。但是,我无法弄清楚为什么会出现这个错误。我相信这与代码的第77行有关,但我想学习为什么它不起作用,以便下次更好地帮助自己。抱歉问题有点啰嗦,我不知道何时该停止。

01-25 20:42:42.139: E/AndroidRuntime(1307): FATAL EXCEPTION: main
01-25 20:42:42.139: E/AndroidRuntime(1307): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.view.View$1.onClick(View.java:3597)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.view.View.performClick(View.java:4202)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.os.Looper.loop(Looper.java:137)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:42:42.139: E/AndroidRuntime(1307): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:42:42.139: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:42:42.139: E/AndroidRuntime(1307):     at android.view.View$1.onClick(View.java:3592)
01-25 20:42:42.139: E/AndroidRuntime(1307):     ... 11 more
01-25 20:42:42.139: E/AndroidRuntime(1307): Caused by: java.lang.NullPointerException
01-25 20:42:42.139: E/AndroidRuntime(1307):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:77)
01-25 20:42:42.139: E/AndroidRuntime(1307):     ... 14 more
01-25 20:44:42.549: E/MPL-storeload(511): calData from inv_save_mpl_states, size=2
01-25 20:45:39.759: E/InputDispatcher(511): channel '41b55368 com.seven.up/com.seven.up.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-25 20:45:50.279: E/AndroidRuntime(1625): FATAL EXCEPTION: main
01-25 20:45:50.279: E/AndroidRuntime(1625): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.view.View$1.onClick(View.java:3597)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.view.View.performClick(View.java:4202)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.os.Looper.loop(Looper.java:137)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:45:50.279: E/AndroidRuntime(1625): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:45:50.279: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:45:50.279: E/AndroidRuntime(1625):     at android.view.View$1.onClick(View.java:3592)
01-25 20:45:50.279: E/AndroidRuntime(1625):     ... 11 more
01-25 20:45:50.279: E/AndroidRuntime(1625): Caused by: java.lang.NullPointerException
01-25 20:45:50.279: E/AndroidRuntime(1625):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:78)
01-25 20:45:50.279: E/AndroidRuntime(1625):     ... 14 more
01-25 20:46:32.409: E/InputDispatcher(511): channel '416e8e78 com.seven.up/com.seven.up.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-25 20:46:35.449: E/AndroidRuntime(1830): FATAL EXCEPTION: main
01-25 20:46:35.449: E/AndroidRuntime(1830): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.view.View$1.onClick(View.java:3597)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.view.View.performClick(View.java:4202)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.os.Looper.loop(Looper.java:137)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:46:35.449: E/AndroidRuntime(1830): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:46:35.449: E/AndroidRuntime(1830):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:46:35.449: E/AndroidRuntime(1830):     at android.view.View$1.onClick(View.java:3592)
01-25 20:46:35.449: E/AndroidRuntime(1830):     ... 11 more
01-25 20:46:35.449: E/AndroidRuntime(1830): Caused by: java.lang.NullPointerException
01-25 20:46:35.449: E/AndroidRuntime(1830):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:77)
01-25 20:46:35.449: E/AndroidRuntime(1830):     ... 14 more
01-25 20:47:40.119: E/AndroidRuntime(2009): FATAL EXCEPTION: main
01-25 20:47:40.119: E/AndroidRuntime(2009): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.view.View$1.onClick(View.java:3597)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.view.View.performClick(View.java:4202)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.os.Looper.loop(Looper.java:137)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:47:40.119: E/AndroidRuntime(2009): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:47:40.119: E/AndroidRuntime(2009):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:47:40.119: E/AndroidRuntime(2009):     at android.view.View$1.onClick(View.java:3592)
01-25 20:47:40.119: E/AndroidRuntime(2009):     ... 11 more
01-25 20:47:40.119: E/AndroidRuntime(2009): Caused by: java.lang.NullPointerException
01-25 20:47:40.119: E/AndroidRuntime(2009):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:77)
01-25 20:47:40.119: E/AndroidRuntime(2009):     ... 14 more
01-25 20:49:29.979: E/InputDispatcher(511): channel '414e7770 com.seven.up/com.seven.up.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-25 20:49:30.149: E/jdwp(2216): Failed sending reply to debugger: Broken pipe
01-25 20:49:41.599: E/MPL-storeload(511): calData from inv_save_mpl_states, size=2
01-25 20:50:12.539: E/InputDispatcher(511): channel '41c0a160 com.seven.up/com.seven.up.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-25 20:50:13.629: E/InputManager-JNI(511): An exception was thrown by callback 'interceptKeyBeforeQueueing'.
01-25 20:50:13.629: E/InputManager-JNI(511): java.lang.NullPointerException
01-25 20:50:13.629: E/InputManager-JNI(511):    at com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:3948)
01-25 20:50:13.629: E/InputManager-JNI(511):    at com.android.server.wm.InputMonitor.interceptKeyBeforeQueueing(InputMonitor.java:337)
01-25 20:50:13.629: E/InputManager-JNI(511):    at com.android.server.input.InputManagerService.interceptKeyBeforeQueueing(InputManagerService.java:1346)
01-25 20:50:13.629: E/InputManager-JNI(511):    at dalvik.system.NativeStart.run(Native Method)
01-25 20:50:13.899: E/InputManager-JNI(511): An exception was thrown by callback 'interceptKeyBeforeQueueing'.
01-25 20:50:13.899: E/InputManager-JNI(511): java.lang.NullPointerException
01-25 20:50:13.899: E/InputManager-JNI(511):    at com.android.internal.policy.impl.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:3948)
01-25 20:50:13.899: E/InputManager-JNI(511):    at com.android.server.wm.InputMonitor.interceptKeyBeforeQueueing(InputMonitor.java:337)
01-25 20:50:13.899: E/InputManager-JNI(511):    at com.android.server.input.InputManagerService.interceptKeyBeforeQueueing(InputManagerService.java:1346)
01-25 20:50:13.899: E/InputManager-JNI(511):    at dalvik.system.NativeStart.run(Native Method)
01-25 20:50:19.759: E/InputDispatcher(511): channel '41419b38 com.seven.up/com.seven.up.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-25 20:51:49.459: E/WeatherXmlParser(2522): Couldn't parse Yahoo weather XML
01-25 20:51:49.459: E/WeatherXmlParser(2522): java.lang.NumberFormatException: Invalid float: ""
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.lang.StringToReal.invalidReal(StringToReal.java:63)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.lang.StringToReal.parseFloat(StringToReal.java:289)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.lang.Float.parseFloat(Float.java:300)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at com.cyanogenmod.lockclock.weather.WeatherXmlParser.getFloatForAttribute(WeatherXmlParser.java:86)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at com.cyanogenmod.lockclock.weather.WeatherXmlParser.parseWeatherResponse(WeatherXmlParser.java:108)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at com.cyanogenmod.lockclock.weather.WeatherUpdateService$WeatherUpdateTask.doInBackground(WeatherUpdateService.java:210)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at com.cyanogenmod.lockclock.weather.WeatherUpdateService$WeatherUpdateTask.doInBackground(WeatherUpdateService.java:126)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-25 20:51:49.459: E/WeatherXmlParser(2522):   at java.lang.Thread.run(Thread.java:856)
01-25 20:52:24.619: E/MPL-storeload(511): calData from inv_save_mpl_states, size=2
01-25 20:57:07.229: E/AndroidRuntime(2410): FATAL EXCEPTION: main
01-25 20:57:07.229: E/AndroidRuntime(2410): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.view.View$1.onClick(View.java:3597)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.view.View.performClick(View.java:4202)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.os.Looper.loop(Looper.java:137)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:57:07.229: E/AndroidRuntime(2410): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:57:07.229: E/AndroidRuntime(2410):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:57:07.229: E/AndroidRuntime(2410):     at android.view.View$1.onClick(View.java:3592)
01-25 20:57:07.229: E/AndroidRuntime(2410):     ... 11 more
01-25 20:57:07.229: E/AndroidRuntime(2410): Caused by: java.lang.NullPointerException
01-25 20:57:07.229: E/AndroidRuntime(2410):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:77)
01-25 20:57:07.229: E/AndroidRuntime(2410):     ... 14 more
01-25 20:59:12.549: E/AndroidRuntime(3168): FATAL EXCEPTION: main
01-25 20:59:12.549: E/AndroidRuntime(3168): java.lang.IllegalStateException: Could not execute method of the activity
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.view.View$1.onClick(View.java:3597)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.view.View.performClick(View.java:4202)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.view.View$PerformClick.run(View.java:17340)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.os.Handler.handleCallback(Handler.java:725)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.os.Looper.loop(Looper.java:137)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.app.ActivityThread.main(ActivityThread.java:5191)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at dalvik.system.NativeStart.main(Native Method)
01-25 20:59:12.549: E/AndroidRuntime(3168): Caused by: java.lang.reflect.InvocationTargetException
01-25 20:59:12.549: E/AndroidRuntime(3168):     at java.lang.reflect.Method.invokeNative(Native Method)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at java.lang.reflect.Method.invoke(Method.java:511)
01-25 20:59:12.549: E/AndroidRuntime(3168):     at android.view.View$1.onClick(View.java:3592)
01-25 20:59:12.549: E/AndroidRuntime(3168):     ... 11 more
01-25 20:59:12.549: E/AndroidRuntime(3168): Caused by: java.lang.NullPointerException
01-25 20:59:12.549: E/AndroidRuntime(3168):     at com.seven.up.MainActivity.OnClickPort(MainActivity.java:76)
01-25 20:59:12.549: E/AndroidRuntime(3168):     ... 14 more
01-25 21:01:13.939: E/MPL-storeload(511): calData from inv_save_mpl_states, size=2


package com.seven.up;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    EditText ip_address_field;
    TextView scan_out;
    TextView port_results;
    EditText startPort;
    EditText stopPort;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ip_address_field = (EditText) findViewById(R.id.ip_address_field);
        ip_address_field.getText();
        scan_out = (TextView) findViewById(R.id.scan_out);

        Button scan_button = (Button) findViewById(R.id.scan_button);
        scan_button.setOnClickListener(this);
    }

    public void onClick(View v) {
        Editable host = ip_address_field.getText();

        switch (v.getId()) {

        case R.id.scan_button:
            try {
                String pingCmd = "ping -c 5 " + host;
                String pingResult = "";
                Runtime r = Runtime.getRuntime();
                Process p = r.exec(pingCmd);
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        p.getInputStream()));
                String inputLine;
                while ((inputLine = in.readLine()) != null) {
                    System.out.println(inputLine);
                    scan_out.setText(inputLine + "\n" + "\n");
                    pingResult += inputLine;
                    scan_out.setText("/n" + pingResult);
                }
                in.close();
            }// try
            catch (IOException e) {
                System.out.println(e);
            }
            break;

        default:
            break;
        }

    }

    public void OnClickPort(View v) {
        switch (v.getId()) {
        case R.id.button1:

        int startPortRange = Integer.parseInt(startPort.getText().toString());
        int stopPortRange = Integer.parseInt(stopPort.getText().toString());

        for (int i = startPortRange; i <= stopPortRange; i++) {
            try {
                Socket ServerSok = new Socket("192.168.0.1", i);

                Toast.makeText(getApplicationContext(), "Port in use: " + i, Toast.LENGTH_LONG).show();

                ServerSok.close();
            } catch (Exception e) {
            }
            System.out.println("Port not in use: " + i);
        } 
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.activity_main, menu);
        return super.onCreateOptionsMenu(menu);
    }
}

1
从这里开始调试:com.seven.up.MainActivity.OnClickPort(MainActivity.java:77)。 - dutt
4个回答

11

这一行代码抛出了NPE,在异常链中产生了一个IllegalStateException

int stopPortRange = Integer.parseInt(stopPort.getText().toString());

在您的 onCreate 方法中,因为您没有初始化 stopPort (或 startPort),所以您应该有以下代码:

stopPort = (EditText) findViewById(R.id.stop_port_field);

这个声明

EditText stopPort;

仅仅是声明了一个默认为null的变量。只有已经实例化的实例才能调用它们的方法。


应该是前一行,即startPort吧?但由于两行代码都出现了相同的错误,这只是挑剔而已。 - dutt
是的,谢谢。我已经从Logcat中确定了这一点,我确信它与我实际传递的代码有关,我觉得我错过了一些我应该已经知道的东西。为了澄清,我正在从两个EditText字段中提取这些值,据我所知,它们返回字符串而不是整数,因此必须进行转换,我不明白为什么不起作用,但肯定是我的问题 :) - Pheonix2105
@dutt 你说得对,但这两个对象都没有赋值,这是一个问题。 - Reimeus
我明白了,谢谢你,这解决了我的问题。正如我所说,我是新手,我需要理解为什么事情会做出这样的反应,以便我能够从中学习。所以在这种情况下,我没有初始化stopPort?"EditText startPort; EditText stopPort;" 只是初始化变量吗?而 "stopPort = (EditText) findViewById(R.id.stop_port_field);" 是将 'stopPort' 与 UI 组件绑定吗?非常感谢您的帮助。 - Pheonix2105

1
有点晚了,但仍然回复一下 @Pheonix2105。正如Reimeus所提到的,
EditText startPort, stopPort;

只是声明变量,这不会为这些声明的变量初始化值。因此,这些变量的值目前为“null”。

stopPort = (EditText) findViewById (R.id.stop_port_field)

初始化(或按照您的术语,将stopPort与UI组件绑定)stopPort的值,从而避免NullPointerException(进而导致您的情况下的IllegalStatementException)。

希望这样可以澄清您的疑虑。


0
我有同样的问题:
只需在onCreate函数中这些行下面初始化/声明您的View字段即可:
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

例如

protected void onCreate(Bundle savedInstanceState) 
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bart = (ImageView) findViewById(R.id.bartView);
    homer = (ImageView) findViewById(R.id.homerView);
}

0

可能是以下两种情况之一:

  • 没有初始化变量
  • 在声明变量时初始化了变量并覆盖了它们

通常人们会复制相同的代码行,以期望在每行中更改一个变量名称,以尝试加快速度,但可能会忘记一行或漏掉一个单词更改。

EditText stopPort;

那是你的问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接