Android java.lang.NullPointerException: println a besoin d'un message
J'ai un problème avec mon application quand j'essaie de me connecter.
En fait, si je vous enregistrer (si la case à cocher remerberMe
isChecked()
sur le registre de l'action, lors de la prochaine connexion de l'activité principale est affichée sinon, l'activité de connexion s'affiche) tout d'abord, il fonctionne très bien.
Cependant, la Login
Activité ne fonctionne pas lorsqu'elle est appelée sur la prochaine connexion après le registre de l'action.
De L'Activité De Connexion
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();
}
Une partie de 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
OriginalL'auteur jeff7 | 2013-10-24
Vous devez vous connecter pour publier un commentaire.
Dans le bloc catch
e.getMessage()
peut êtrenull
. Essayez ceci:getRowCount()
retourne 1 et le nom d'utilisateur et le mot de passe que je l'entré est le même que je entrered sur l'enregistrement. doncdb.Login(username, password)
doit retourner vrai, mais elle renvoie false. pour détruire le thread je veux utiliserThread.currentThread().destroy();
mais destroy() est barré. aider moi s'il vous plaîtCar il va le bloc catch, la première chose que vous devez faire est de trouver ce que l'exception a été levée, faire un
e.printStackTrace()
dans la capture et le rapport du journal des erreurs. Aussi, car il est complètement différent que ce que vous aviez demandé avant, vous pouvez fermer cette question et demander un nouveau pour que plus de gens peuvent vous aider.1 pour répondre...
OriginalL'auteur Amulya Khare
L'image est votre imageView et imageurl est votre url toload image à partir du serveur.
OriginalL'auteur idris yıldız