2014-04-04 60 views
-1

現在只是試圖創建一個android應用程序來使用eclipse登錄。 但是當我運行的代碼獲得上述error.Whil在logcat的看着它顯示36行錯誤,但不知道對我來說,如何恢復它,應用程序意外停止,請稍後再試 - 強制關閉

這裏是我的代碼:

package com.example.login; 

import java.util.ArrayList; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.os.Build; 
import android.app.Activity; 

public class MainActivity extends ActionBarActivity { 
    EditText un,pw; 
    TextView error; 
    Button ok; 
    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     pw=(EditText)findViewById(R.id.et_pw); 
     ok=(Button)findViewById(R.id.btn_login); 
     error=(TextView)findViewById(R.id.tv_error); 

     ok.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
       postParameters.add(new BasicNameValuePair("username", un.getText().toString())); 
       postParameters.add(new BasicNameValuePair("password", pw.getText().toString())); 

       String response = null; 
       try { 
        response = CustomHttpClient.executeHttpPost("<target page url>", postParameters); 
        String res=response.toString(); 
        res= res.replaceAll("\\s+",""); 
        if(res.equals("1")) 
         error.setText("Correct Username or Password"); 
        else 
         error.setText("Sorry!! Incorrect Username or Password"); 
       } catch (Exception e) { 
        un.setText(e.toString()); 
       } 

      } 
     }); 
    } 
} 

這裏是我的logcat:

04-04 11:14:26.657: E/AndroidRuntime(382): FATAL EXCEPTION: main 
04-04 11:14:26.657: E/AndroidRuntime(382): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login/com.example.login.MainActivity}: java.lang.NullPointerException 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread.access$500(ActivityThread.java:122) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.os.Looper.loop(Looper.java:132) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread.main(ActivityThread.java:4123) 
04-04 11:14:26.657: E/AndroidRuntime(382): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 11:14:26.657: E/AndroidRuntime(382): at java.lang.reflect.Method.invoke(Method.java:491) 
04-04 11:14:26.657: E/AndroidRuntime(382): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
04-04 11:14:26.657: E/AndroidRuntime(382): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
04-04 11:14:26.657: E/AndroidRuntime(382): at dalvik.system.NativeStart.main(Native Method) 
04-04 11:14:26.657: E/AndroidRuntime(382): Caused by: java.lang.NullPointerException 
04-04 11:14:26.657: E/AndroidRuntime(382): at com.example.login.MainActivity.onCreate(MainActivity.java:36) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.Activity.performCreate(Activity.java:4397) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
04-04 11:14:26.657: E/AndroidRuntime(382): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779) 
04-04 11:14:26.657: E/AndroidRuntime(382): ... 11 more 

其明顯的,如果我得到一個解決這個問題。 在此先感謝。

+1

'un'爲null在調用getText()前忘記初始化() –

+0

@ user3312675,以下任何答案是否有效? – InnocentKiller

+0

我試過那些,但沒有任何作品:( – Appdev

回答

1

添加以下代碼行上創建

un=(EditText)findViewById(R.id.et_un); 

希望這將解決這一問題

1

聲明這個,你忘了初始化onCreate方法中的用戶名的編輯文本。你已經聲明瞭pw,好的和錯誤的,但忘記聲明un。所以請在下面聲明並嘗試。

un=(EditText)findViewById(R.id.yourID); 
1
ok=(Button)findViewById(R.id.btn_login); 
//... 
ok.setOnClickListener(...) 

確保您activity_main佈局確實包含ID btn_login的視圖。 ok爲null這裏是您的堆棧跟蹤中NPE的唯一解釋。

un如其他人所說,但會後來才導致NPE,與涉及onClick()而不是onCreate()不同的堆棧跟蹤也沒有初始化。

+0

好的,我會嘗試..感謝您的迴應 – Appdev

+0

我的活動主要包含btn_login的視圖。 – Appdev

+0

'ok'爲null仍然是原因。如果您最近重新排列了元素您的XML文件,清理並重建應用程序,有時候生成的'R'和二進制XML文件中的標識符不同步,並且完整的重建可以在那裏幫助。 – laalto

相關問題