2011-11-07 61 views
0

我是一名初學者,正在編寫android應用程序。你能幫我解決這個問題嗎?我已經包含logcat條目和活動類。Android運行時錯誤

日誌:

11-07 12:46:28.245: D/AndroidRuntime(579): Shutting down VM 
11-07 12:46:28.245: W/dalvikvm(579): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
11-07 12:46:28.285: E/AndroidRuntime(579): FATAL EXCEPTION: main 
11-07 12:46:28.285: E/AndroidRuntime(579): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.trial.login/com.trial.login.Login1Activity}: java.lang.NullPointerException 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.os.Looper.loop(Looper.java:123) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread.main(ActivityThread.java:3683) 
11-07 12:46:28.285: E/AndroidRuntime(579): at java.lang.reflect.Method.invokeNative(Native Method) 
11-07 12:46:28.285: E/AndroidRuntime(579): at java.lang.reflect.Method.invoke(Method.java:507) 
11-07 12:46:28.285: E/AndroidRuntime(579): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-07 12:46:28.285: E/AndroidRuntime(579): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-07 12:46:28.285: E/AndroidRuntime(579): at dalvik.system.NativeStart.main(Native Method) 
11-07 12:46:28.285: E/AndroidRuntime(579): Caused by: java.lang.NullPointerException 
11-07 12:46:28.285: E/AndroidRuntime(579): at com.trial.login.Login1Activity.onCreate(Login1Activity.java:28) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-07 12:46:28.285: E/AndroidRuntime(579): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
11-07 12:46:28.285: E/AndroidRuntime(579): ... 11 more 

LoginActivity.class:

package com.trial.login; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    public class Login1Activity extends Activity { 

      TextView username, password; 
      EditText user_edit, pwd_edit; 
      Button login, cancel; 

       @Override 
      public void onCreate(Bundle savedInstanceState) { 

       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 
       login = (Button) findViewById(R.id.bt1); 
       cancel = (Button) findViewById(R.id.bt2); 
       username = (TextView) findViewById(R.id.tv1); 
       password = (TextView) findViewById(R.id.tv2); 
       user_edit = (EditText) findViewById(R.id.txtUname); 
       pwd_edit = (EditText) findViewById(R.id.txtPwd); 

       login.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View arg0) { 
         display(); 
        } 
       }); 
      } 
      cancel.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

          user_edit.clearComposingText(); 
        pwd_edit.clearComposingText(); 

       } 
      }); 

      public void display(){ 

       String user_temp, pwd_temp; 
      user_temp = user_edit.getText().toString(); 
      pwd_temp = pwd_edit.getText().toString(); 
      username.setText(user_temp); 
      password.setText(pwd_temp); 
      } 
} 
+0

你可以發佈您的main.xml文件? – Vladimir

+0

@Vladimir它的工作!謝謝 – Sammy

回答

1

試試這個:

package com.trial.login; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    public class Login1Activity extends Activity { 

      TextView username, password; 
      EditText user_edit, pwd_edit; 
      Button login, cancel; 

      @Override 
      public void onCreate(Bundle savedInstanceState) { 

       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 
       login = (Button) findViewById(R.id.bt1); 
       cancel = (Button) findViewById(R.id.bt2); 
       username = (TextView) findViewById(R.id.tv1); 
       password = (TextView) findViewById(R.id.tv2); 
       user_edit = (EditText) findViewById(R.id.txtUname); 
       pwd_edit = (EditText) findViewById(R.id.txtPwd); 

       login.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View arg0) { 
         display(); 
        } 
       }); 

       cancel.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 

         user_edit.clearComposingText(); 
         pwd_edit.clearComposingText(); 

        } 
       }); 
      } 


      public void display(){ 

       String user_temp, pwd_temp; 
      user_temp = user_edit.getText().toString(); 
      pwd_temp = pwd_edit.getText().toString(); 
      username.setText(user_temp); 
      password.setText(pwd_temp); 
      } 
} 
2

我不知道這是否會解決你的問題,但不應該cancel.setOnClickListener是的onCreate內?我不得不承認,我不太瞭解Java如何初始化對象,但可能會在取消指向任何內容之前執行該代碼塊。

+0

耶..感謝您指出。 – Sammy

+0

@sammy:請接受其他人的參考答案。 – Hiral

0

檢查是否已在你的代碼中使用的所有觀點都存在main.xml中。 還要檢查你的代碼寫的所有意見ID不相同的ID main.xml中

*放置onCreate方法結尾括號cancel.setOnClickListener後