0
может кто-нибудь, пожалуйста, помогите мне :(SQLite базы данных (код 14) Ошибка
я хочу сделать книгу и использовать эти коды:
public class Main extends Activity {
private database db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db = new database(this);
db.useable();
}
}
и для класса базы данных:
public class database extends SQLiteOpenHelper {
public final String path = "data/data/com.example.book/databases/";
public final String Name = "database";
public SQLiteDatabase mydb;
private final Context mycontext;
public database(Context context) {
super(context, "database", null, 1);
mycontext = context;
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {}
}
}
public void open() {
mydb = SQLiteDatabase.openDatabase(path + Name, null,
SQLiteDatabase.OPEN_READWRITE);
}
@Override
public void close() {
mydb.close();
}
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null,
SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e) {
}
mydb.close();
return db != null ? true : false;
}
public void copydatabase() throws IOException {
OutputStream myOutput = new FileOutputStream(path + Name);
byte[] buffer = new byte[1024];
int length;
InputStream myInput = mycontext.getAssets().open(Name);
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
но я получил силу близко и эти ошибки
E/SQLiteDatabase(1567): Failed to open database 'data/data/com.example.book/databases/database'.
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
мой файл базы данных находится в папке активов с "базы данных" имя, мой эмулятор genymotion
Является ли ваше имя пакета ** com.example .книга**? По ошибке отображается как ** com.example.book1 **. –
Извините, я тестирую 2 разных кода и журналы меняются. имя пакета правильно – Ali