2013-09-26 16 views
0

我有這個登錄acitivity從一個server.i我能夠正確的retreive值,但我得到一個非法的狀態異常的值。 -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------------------- code:得到一個非法的狀態異常

public class StartActivity extends Activity { 

String[] classname= new String[10]; 
String[] pass= new String[10]; 
EditText class_name,password; 
boolean flag; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_start); 
    class_name =(EditText)findViewById(R.id.class_name_et); 
    password=(EditText)findViewById(R.id.pass_et); 
    //invalid=(TextView)findViewById(R.id.textView4); 

} 
public void login(View v) 
{ 
    String temp=getServerData(KEY_121); 
    String un= class_name.getText().toString(); 
    String pas= password.getText().toString(); 
    for(int i=0;i<=3;i++) 
    { 

     if(classname[i].equalsIgnoreCase(un)&&pass[i].equalsIgnoreCase(pas)) 
     { 
      Log.i("success",""+classname[i]); 
      flag=false; 
      Intent i1=new Intent(StartActivity.this,Subect_Names.class); 
      startActivity(i1); 
     } 
    } 
    if(flag) 
    { 
     Log.i("fail","failed to login"); 
    } 

} 

public static final String KEY_121 = "http://192.168.1.7/class_login.php"; 

private String getServerData(String returnString) { 

    InputStream is = null; 

    String result = ""; 
    //the year data to send 
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("ClassName","nand")); 
    nameValuePairs.add(new BasicNameValuePair("Pass","921279")); 

    //http post 
    try{ 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost(KEY_121); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 

    }catch(Exception e){ 
      Log.e("log_tag", "Error in http connection "+e.toString()); 
    } 

    //convert response to string 
    try{ 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
      } 
      is.close(); 
      result=sb.toString(); 
    }catch(Exception e){ 
      Log.e("log_tag", "Error converting result "+e.toString()); 
    } 
    //parse json data 
    try{ 
      JSONArray jArray = new JSONArray(result); 
      for(int i=0;i<jArray.length();i++){ 
        JSONObject json_data = jArray.getJSONObject(i);     
        classname[i]= json_data.getString("ClassName"); 
        pass[i]= json_data.getString("Pass"); 
        Log.e("test",""+classname[i]); 

        //Get an output to the screen 
        returnString += "\n\t" + jArray.getJSONObject(i); 
      } 
    }catch(JSONException e){ 
      Log.e("log_tag", "Error parsing data "+e.toString()); 
    } 

    return returnString; 
} 

} logcat的:

09-26 18:52:42.294: E/test(328): Rohit 
09-26 18:52:42.294: E/test(328): Nanda 
09-26 18:52:42.294: E/test(328): abc 
09-26 18:52:42.303: I/success(328): Nanda 
09-26 18:52:42.323: D/AndroidRuntime(328): Shutting down VM 
09-26 18:52:42.323: W/dalvikvm(328): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
09-26 18:52:42.353: E/AndroidRuntime(328): FATAL EXCEPTION: main 
09-26 18:52:42.353: E/AndroidRuntime(328): java.lang.IllegalStateException: Could not execute method of the activity 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.view.View$1.onClick(View.java:2072) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.view.View.performClick(View.java:2408) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.view.View$PerformClick.run(View.java:8816) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.os.Handler.handleCallback(Handler.java:587) 
    09-26 18:52:42.353: E/AndroidRuntime(328): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.os.Looper.loop(Looper.java:123) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at dalvik.system.NativeStart.main(Native Method) 
09-26 18:52:42.353: E/AndroidRuntime(328): Caused by: java.lang.reflect.InvocationTargetException 
09-26 18:52:42.353: E/AndroidRuntime(328):  at org.example.attendance.StartActivity.login(StartActivity.java:52) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-26 18:52:42.353: E/AndroidRuntime(328):  at android.view.View$1.onClick(View.java:2067) 
09-26 18:52:42.353: E/AndroidRuntime(328):  ... 11 more 
09-26 18:52:42.353: E/AndroidRuntime(328): Caused by: java.lang.NullPointerException 
09-26 18:52:42.353: E/AndroidRuntime(328):  ... 15 more 
09-26 18:52:44.523: I/Process(328): Sending signal. PID: 328 SIG: 9 
+1

請至少添加logcat的......或者在拋出異常的行... – ppeterka

+0

@ ppeterka66加入logcat的 – user2586942

回答

1

你的錯誤是在這行代碼

org.example.attendance.StartActivity.login(StartActivity.java:52) 
+0

u能請指出行代碼,由於錯誤?因爲我無法找到第52行的錯誤。 – user2586942

+0

這是完整的類文件嗎?包括你所有的進口? –

+0

它在行中發出錯誤 - 「if(classname [i] .equalsIgnoreCase(un)&& pass [i] .equalsIgnoreCase(pas))」但在此循環內執行log.i命令 – user2586942