Android java.lang.NullPointerException: println нуждается в сообщении

У меня проблема с моим приложением, когда я пытаюсь войти.

Фактически, если я зарегистрирую (если флажок remerberMe isChecked() в действии регистра, то при следующем соединении основное действие отображается, иначе появится действие входа), во-первых, он работает нормально.

Однако действие Login в Login не работает, когда оно вызывается при следующем соединении после действия регистра.

Активность входа

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); setTitle(R.string.loginTitle); // Importing all assets like buttons, text fields inputUsername = (EditText) findViewById(R.id.username_value); inputPassword = (EditText) findViewById(R.id.password_value); btnLogin = (Button) findViewById(R.id.loginButton); btnExit = (Button) findViewById(R.id.exitButton); btnLinkToRegister = (Button) findViewById(R.id.btnLinkToRegister); rememberMe = (CheckBox) findViewById(R.id.rememberNameRegister); // Login button Click Event btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LoginAction(); } }); // Link to Register Screen btnLinkToRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(getApplicationContext(), RegisterActivity.class); startActivity(i); finish(); } }); btnExit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } public void LoginAction() { Log.i("Login", "Login Action"); progressDialog = ProgressDialog.show(LoginActivity.this, null, getResources().getString(R.string.loginProgressMessage), true); // try { runOnUiThread(new Runnable() { String username = inputUsername.getText().toString(); String password = inputPassword.getText().toString(); @Override public void run() { Log.i("Login Run", "username " + username); switch (username.length()) { case 0: blankUserName(); break; } switch (password.length()) { case 0: blankPassWord(); // thread.stop(); break; } try { if (username.length() > 0 && password.length() > 0) { Log.i("Login Run", "password " + password); // Password pass = new Password(username, password); DatabaseHelper db = new DatabaseHelper( getApplicationContext()); int count = db.getRowCount(); Log.i("Login", "getRowCompte " + count); if (count == 1) { Log.i("Login","getLogin1 "); // if (db.getLogin(username, password) == 1) { if (db.Login(username, password)== true) { Log.i("Login", "rememberMe.isChecked()"); if (rememberMe.isChecked() == true) { statut = "on"; } else if (rememberMe.isChecked() == false) { statut = "off"; } Log.i("Login", "ok ischecked"); Log.i("Login","getRowCompteStat "+ db.getRowCountStat()); if (db.getRowCountStat() == 1) { db.UpdateStatut(statut); Log.i("Login", "getRowCompte " + count); } Toast.makeText(getApplicationContext(), "Student Moyenne \n Bienvenu!", Toast.LENGTH_LONG).show(); Log.i("Login Run", "Connecté"); Intent moy = new Intent( getApplicationContext(), MoyenneMain.class); // Close all views before launching // Dashboard moy.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(moy); finish(); db.close(); } else if (db.Login(username, password)==false){ // if (db.getLogin(username, password) == 0) { // Log.i("Login Run", "faux password"); Toast.makeText(LoginActivity.this,"Invalid Username/Password",Toast.LENGTH_LONG).show(); Intent login = new Intent(getApplicationContext(),LoginActivity.class); login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(login); finish(); db.close(); } } else if (count == 0) { Log.i("Login Run", "Enregistrez vous"); Toast.makeText(LoginActivity.this, "Enregistrez vous!", Toast.LENGTH_SHORT) .show(); Intent register = new Intent( getApplicationContext(), RegisterActivity.class); register.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(register); finish(); db.close(); } } } catch (Exception e) { Log.i("Login Error1", e.getMessage()); Toast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } } }); // } catch (Exception e) { // Thread.currentThread().destroy(); // Log.i("Login Error2", e.getMessage()); // Toast.makeText(LoginActivity.this, e.getMessage(), // Toast.LENGTH_LONG).show(); // } } private void blankUserName() { Toast.makeText(LoginActivity.this, "Entrez un nom Utilisateur SVP!", Toast.LENGTH_SHORT).show(); Intent login = new Intent(getApplicationContext(), LoginActivity.class); login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(login); finish(); } private void blankPassWord() { Toast.makeText(LoginActivity.this, "Entrez un mot de passe SVP!", Toast.LENGTH_SHORT).show(); Intent login = new Intent(getApplicationContext(), LoginActivity.class); login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(login); finish(); } 

Часть DatabaseHelper

 public int getRowCountStat() { String countQuery = "SELECT * FROM " + TABLE_STATUT; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); int rowCount = cursor.getCount(); db.close(); cursor.close(); // return row count return rowCount; } public int getRowCount() { String countQuery = "SELECT * FROM " + TABLE_LOGIN; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); int rowCount = cursor.getCount(); db.close(); cursor.close(); // return row count return rowCount; } public boolean Login(String username, String password) throws SQLException { Cursor mCursor = db.rawQuery("SELECT * FROM " + TABLE_LOGIN + " WHERE username=? AND password=?" , new String[]{username,password}); if (mCursor != null) { if(mCursor.getCount() > 0) { return true; } } return false; } public int UpdateStatut(String statut) { final static int idStat = 1; SQLiteDatabase db = this.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put(STATUT, statut); return db.update(TABLE_STATUT, cv, ID_STAT + "=?", new String[] { String.valueOf(idStat) }); } 

Logcat

 10-24 01:48:08.819: E/AndroidRuntime(29242): FATAL EXCEPTION: main 10-24 01:48:08.819: E/AndroidRuntime(29242): java.lang.NullPointerException: println needs a message 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.util.Log.println_native(Native Method) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.util.Log.i(Log.java:143) 10-24 01:48:08.819: E/AndroidRuntime(29242): at com.android.moyenne.activity.LoginActivity$4.run(LoginActivity.java:163) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.app.Activity.runOnUiThread(Activity.java:3707) 10-24 01:48:08.819: E/AndroidRuntime(29242): at com.android.moyenne.activity.LoginActivity.LoginAction(LoginActivity.java:78) 10-24 01:48:08.819: E/AndroidRuntime(29242): at com.android.moyenne.activity.LoginActivity$1.onClick(LoginActivity.java:46) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.view.View.performClick(View.java:2408) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.view.View$PerformClick.run(View.java:8816) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.os.Handler.handleCallback(Handler.java:587) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.os.Handler.dispatchMessage(Handler.java:92) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.os.Looper.loop(Looper.java:123) 10-24 01:48:08.819: E/AndroidRuntime(29242): at android.app.ActivityThread.main(ActivityThread.java:4627) 10-24 01:48:08.819: E/AndroidRuntime(29242): at java.lang.reflect.Method.invokeNative(Native Method) 10-24 01:48:08.819: E/AndroidRuntime(29242): at java.lang.reflect.Method.invoke(Method.java:521) 10-24 01:48:08.819: E/AndroidRuntime(29242): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 10-24 01:48:08.819: E/AndroidRuntime(29242): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 10-24 01:48:08.819: E/AndroidRuntime(29242): at dalvik.system.NativeStart.main(Native Method) 10-24 01:48:12.260: I/Process(29242): Sending signal. PID: 29242 SIG: 9 

Solutions Collecting From Web of "Android java.lang.NullPointerException: println нуждается в сообщении"

В блоке catch e.getMessage() может быть null . Попробуй это:

 String msg = (e.getMessage()==null)?"Login failed!":e.getMessage(); Log.i("Login Error1",msg); 

// image your imageView и imageurl ваш url для загрузки изображения с сервера

пытаться {

  InputStream in = new java.net.URL(imageURl).openStream(); this.image = BitmapFactory.decodeStream(in); } catch (Exception e) { String msg = (e.getMessage() == null) ? "image load failed!" :e.getMessage(); Log.i("image load error", msg); }