2015-10-11 2 views
-1

Дальнейшие приключения в Android Studio!Android Studio Новая активность вызывает Crash

I есть это работающий. У меня есть активность входа, когда он переходит к другому. Совсем просто. Отлично работал на эмуляторе. Пробовал это с подключенным телефоном, и он выбросил исключение NetworkOnMainException ... Итак, исследовал это и помещал интернет-журнал в отдельный поток Async.

Когда я выполняю свое приложение сейчас, когда он запускает новое действие, он сбой. Странно, если я отлаживаю это и просматриваю код, он работает, и отображается второе действие. Если я позволю приложению работать на своей скорости, он сработает.

Мой журнал в методе кнопки:

public void signInButtonClick(View v) throws InterruptedException { 

     // Button button=(Button) v; 

     String loginSql; 

     Globals.userName = loginID.getText().toString(); 

     Globals.passWord = loginPW.getText().toString(); 
     //www.myarraydata.com/app/androidlogin.php?username=X&password=Y 
     loginSql = "http://www.mywebsite.com/app/loginscript.php?username="+Globals.userName+"&password="+Globals.passWord ; 
     ((Button) v).setText("Signing in..."); 
     System.out.println(loginSql); 
     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     try { 
      url = new URL(loginSql); 

      new loginTask().execute(); 

      System.out.println(readStream); 

     if(readStream.equals("FAIL")) 
      { 
       loggedIn = false; 
      } 
      else 
      { 
       loggedIn = true; 
       //Store the list of arrays for this customer in the arrayList global variable 
       Globals.arrayList = Arrays.asList(readStream.split("\\s*#\\s*")); 

      } 

     } catch (Exception e) { 
      System.out.println(e); 
      e.printStackTrace(); 
     } 



    if (loggedIn==true) 
    { 

     startActivity(new Intent(MainActivity.this,LiveStatus.class)); 
     Thread.sleep(1000); 
     finish(); 
    } 
     else 
    { 
     new AlertDialog.Builder(this) 
       .setTitle("Oops...") 
       .setMessage("Sign in failed. Please try again.") 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // continue with delete 
        } 
       }) 
       .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         System.exit(0); 
        } 
       }) 
       .setIcon(android.R.drawable.ic_dialog_alert) 
       .show(); 
    } 

Logcat показывает, что это вызвано InvocationTargetExcecption на signInButtonClick и NullPointerException.

10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime: FATAL EXCEPTION: main 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime: java.lang.IllegalStateException: Could not execute method of the activity 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$1.onClick(View.java:2072) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View.performClick(View.java:2408) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$PerformClick.run(View.java:8816) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:587) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:123) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:521) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at app.ictis.com.myarraydaya.MainActivity.signInButtonClick(MainActivity.java:133) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:521) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$1.onClick(View.java:2067) 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View.performClick(View.java:2408)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$PerformClick.run(View.java:8816)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:587)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:92)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:123)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:4627)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:521)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime: Caused by: java.lang.NullPointerException 
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at app.ictis.com.myarraydaya.MainActivity.signInButtonClick(MainActivity.java:133)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:521)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$1.onClick(View.java:2067)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View.performClick(View.java:2408)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.view.View$PerformClick.run(View.java:8816)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.handleCallback(Handler.java:587)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:92)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:123)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:4627)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:521)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)  
10-11 08:09:07.224 6589-6589/app.ictis.com.myarraydaya E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method)  

Любые идеи, пожалуйста?

+0

Возможный дубликат [Что является исключение нулевого указателя, и как это исправить?] (Http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) –

+0

Но как это связано с тем, когда я отлаживаю его по строкам, он работает ... – Tym

+0

.. пока вы не придете к 'at app.ictis.com.myarraydaya.MainActivity.signInButtonClick (MainActivity.java:133)' –

ответ

1

Обнаружено, что переменная loggedIn должна назначаться при ее объявлении. Это нулевой указатель. Мой

new loginTask().execute(); 

, кажется, не будет выполнена надлежащим образом, когда в обычном режиме, только тогда, когда setpping хотя ... что странно.

Thatnks Франку для указателя (не каламбур inteneded!)

Смежные вопросы