2012-01-16 2 views
-2

Привет, я работаю с моим проектом приложения. Просто случается, что после того, как я нажму кнопку входа в систему, выдается сообщение об ошибке «Извините! Приложение неожиданно остановилось. Пожалуйста, попробуйте еще раз. Какова ошибка этого? пожалуйста, помогите спасибоПриложение для Android - ошибка, вызывающая ведение журнала

Это был мой код базы данных пользователя ..

package com.gomez.android; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 

public class dbuser{ 


public static final String user_name = "username"; 
public static final String user_password = "password"; 
public static final String row_id = "_id"; 

private static final String TAG = "UdbAdapter"; 
private DatabaseHelper UdbHelper; 
private SQLiteDatabase Udb; 

/** 
* Database creation sql statement 
*/ 
private static final String DATABASE_CREATE = 
    "create table pages (_id integer primary key autoincrement, " 
    + "username text not null, password text not null);"; 

private static final String DATABASE_NAME = "UserAccount"; 
private static final String DATABASE_TABLE = "User"; 
private static final int DATABASE_VERSION = 1; 

private Context context = null; 

private static class DatabaseHelper extends SQLiteOpenHelper { 

    DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     db.execSQL(DATABASE_CREATE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
       + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS pages"); 
     onCreate(db); 
    } 
} 

public dbuser(Context cntxt) { 
    this.context = cntxt; 
    UdbHelper = new DatabaseHelper(context); 
} 

public void open() throws SQLException { 
    Udb = UdbHelper.getWritableDatabase(); 
} 

public void close() { 
    UdbHelper.close(); 
} 

public long createaccount(String username, String password) 
{ 
    Udb = UdbHelper.getWritableDatabase(); 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(user_name, username); 
    initialValues.put(user_password, password); 

    return Udb.insert(DATABASE_TABLE, null, initialValues); 
} 

public boolean Login(String username, String password)throws SQLException 
{ 
    Cursor mCursor = Udb.rawQuery(DATABASE_TABLE, new String[]{username,password}); 
    if (mCursor != null){ 
     if(mCursor.getCount() > 0){ 
      return true; 
     } 
    } 
    return false; 
} 

}

и это был мой Логин кодовую страницу .....

package com.gomez.android; 

import com.gomez.android.dbuser; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 



public class login extends Activity{ 
//Declare views 
private EditText uname; 
private EditText pword; 
private Button btnlogin; 
private Button btncancel; 



/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //set Activity Layout 
    setContentView(R.layout.login); 

    //Get EditText and Button References 
    uname = (EditText)findViewById(R.id.username); 
    pword = (EditText)findViewById(R.id.password); 
    btnlogin = (Button)findViewById(R.id.login_enter); 
    btncancel = (Button)findViewById(R.id.cancel); 

    //set Click Listener 
    btnlogin.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      //Check Login 
      final String username = uname.getText().toString(); 
      final String password = pword.getText().toString(); 


      dbuser users = new dbuser(login.this); 
      users.open(); 
      if(users.Login(username, password)){ 
        if(username.equalsIgnoreCase(username)&& password.equalsIgnoreCase(password)) 
        { 
         Toast.makeText(login.this,"Successfully Logged In", Toast.LENGTH_LONG).show(); 
         Intent i = new Intent(login.this, firstpage.class); 
         startActivity(i); 
        } 
        else{ 
         Toast.makeText(login.this,"Invalid Username/Password", Toast.LENGTH_LONG).show(); 
        } 
        users.close(); 
       } 
      } 


    }); 

    btncancel.setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      //close application 
      finish(); 
     } 
    }); 
} 

}

+0

не стоит недооценивать силу LogCat! – Selvin

+2

Используйте свой логарифм, также вам нужно поместить соответствующий код, никто не будет читать весь этот код без направления от logcat. –

+0

. Отправьте свой вывод трассировки стека. – bschultz

ответ

0

Я не могу быть уверен, в чем проблема с вашим кодом, поскольку вы не предоставили никакой информации из LogCat, но возможно, что getWriteableDatabase() возвращает кэшированную базу данных при запуске приложения (я часто сталкивался с этой проблемой при первом запуске и тестировании базы данных).

Чтобы убедиться, что это не проблема, перед запуском приложения из Eclipse перейдите в Настройки -> Приложения -> Управление приложениями -> [Приложение] -> Очистить данные. Это простой способ убедиться, что вы работаете со своей самой современной реализацией на ранних этапах внедрения/тестирования базы данных.

Это очень хорошо, возможно, не проблема, но это одна из тех вещей, которые вы не ожидали бы быть проблемой (что часто приводит к часам разочарования), поэтому я подумал, что я подниму ее:).

+0

Г-н Алекс Локвуд, вот информация о LogCat: 01-16 13: 18: 39.762: D/SntpClient (68): время запроса не выполнено: java.net.SocketException: семейство адресов не поддерживается протоколом спасибо – jonael08

+0

thank вы. что помогает – jonael08