私はFacebookブックの統合を含むアプリケーションを作っています。 アクセストークンを保存して、アプリケーションを表示するために再度ログインする必要がないようにする必要があります。しかし、私はアクセストークンを格納することができません。 以下iはandroid sqlLite3データベースのCant store facebookアクセストークン
08-16 13:57:53.236: ERROR/Database(7964): Error inserting acces_token=177852938929775|8e4aec98e182f7034b497766.3-618306968|YAriJqaRTDz1aIgNHjom_tdBnnw
08-16 13:57:53.236: ERROR/Database(7964): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
08-16 13:57:53.236: ERROR/Database(7964): at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
08-16 13:57:53.236: ERROR/Database(7964): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55)
08-16 13:57:53.236: ERROR/Database(7964): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1623)
08-16 13:57:53.236: ERROR/Database(7964): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1484)
08-16 13:57:53.236: ERROR/Database(7964): at org.db.dbHelper.insertRows(dbHelper.java:63)
08-16 13:57:53.236: ERROR/Database(7964): at org.neighbourhood.neighbourhood.onFacebookConnectorWorking(neighbourhood.java:142)
コード取得エラーである: - データベース内の値をはめ込むため
dbHelper db = new dbHelper(neighbourhood.this);
db.open();
ContentValues cv = new ContentValues();
cv.put("acces_token",
facebookConnector.getFacebook().getAccessToken());
db.insertRows(cv, "facebook");
db.close();
コード: -
パブリッククラスdbHelper {
private final String DATABASE_NAME = "neighbourhood.db";
private final String TAG = "dbHelper";
private static final String DATABASE_CREATE_TABLE_LOGIN = "create table login" +
" (is_login text not null);";
private static final String DATABASE_CREATE_TABLE_FACEBOOK = "create table "
+ "facebook"
+ " (name text not null,"
+ "first_name text not null," +
"last_name text not null," +
"gender text not null," +
"email text not null," +
"id text not null," +
"birthday text not null," +
"acces_token text not null);";
private SQLiteDatabase myDatabase;
private myDbhelper helper;
public dbHelper(Context context) {
helper = new myDbhelper(context, DATABASE_NAME, null, 1);
}
/**
* This method is used to open the database in Writable mode
*
* @return instance of the database
*/
public dbHelper open() {
try {
myDatabase = helper.getWritableDatabase();
} catch (SQLException ex) {
ex.printStackTrace();
}
return this;
}
/**
* This method is used for closing the database
*/
public void close() {
myDatabase.close();
}
public long insertRows(ContentValues values, String tableName) {
long val = myDatabase.insert(tableName, null, values);
return val;
}
public Cursor getAllValues(String tableName) {
Cursor myResult;
myResult = myDatabase.query(tableName, null, null, null, null, null,
null, null);
return myResult;
}
private static class myDbhelper extends SQLiteOpenHelper {
public myDbhelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
/**
* this method is called when the database is created first time
*/
@Override
public void onCreate(SQLiteDatabase _db) {
_db.execSQL(DATABASE_CREATE_TABLE_LOGIN);
_db.execSQL(DATABASE_CREATE_TABLE_FACEBOOK);
}
/**
* this method is called when the database version is changed
*/
@Override
public void onUpgrade(SQLiteDatabase _db, int _oldVersion,
int _newVersion) {
/*
* _db.execSQL("DROP TABLE IF EXISTS all_audio");
* _db.execSQL("DROP TABLE IF EXISTS all_video");
* _db.execSQL("DROP TABLE IF EXISTS all_playlist");
*/
_db.execSQL("DROP TABLE IF EXISTS all_playlist_song");
onCreate(_db);
}
}
を}
データベースの外観は? dbHelper.javaの63行目は何ですか? –
あなたのlogcatエラーは制約違反を示しています - データベーステーブルの作成に使用したコードを質問に追加できますか? – Pikaling