안드로이드 응용 프로그램에서 작업하고 있습니다. 내 sqlite 데이터베이스를 안드로이드 프로젝트로 가져옵니다. 데이터베이스가 에뮬레이터에서 제대로 작동하지만 응용 프로그램을 테스트 할 때 내 장치에서 작동하지 않고 메시지를 출력합니다. 불행히도 appname이 중지되었습니다.내 에뮬레이터에서 작동하는 SQLite 데이터베이스가 내 장치에서 작동하지 않습니다.
try {
String destPath = "/data/data/" + getPackageName() + "/databases/MyDB";
File f = new File(destPath);
if (!f.exists()) {
CopyDB(getBaseContext().getAssets().open("mydb"),
new FileOutputStream(destPath));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
COPYDB 기능 :
public void CopyDB(InputStream inputStream, OutputStream outputStream)
throws IOException {
//---copy 1K bytes at a time---
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
DBAdapter 등급 :
나는 다음을 복사하려면이 코드를 사용하여 내 프로젝트에 자산 폴더에 내 데이터베이스를 넣어
public class DBAdapter {
public static final String KEY_ROWID = "_id";
public static final String KEY_NAME = "username";
public static final String KEY_PASSWORD = "password";
private static final String DATABASE_NAME = "MyDB";
private static final String DATABASE_TABLE = "users";
private static final int DATABASE_VERSION = 4;
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
//---opens the database---
public DBAdapter open() throws SQLException
{
db = DBHelper.getWritableDatabase();
return this;
}
//---closes the database---
public void close()
{
DBHelper.close();
}
//---retrieves all the users---
public Cursor getAllusers()
{
return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME,
KEY_PASSWORD}, null, null, null, null, null);
}
//---retrieves a particular user---
public User getuser(String username) throws SQLException
{
Cursor mCursor =
db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_NAME, KEY_PASSWORD}, KEY_NAME + "=" + "'"+username+ "'", null,
null, null, null, null);
if(mCursor.moveToFirst())
{
mCursor.moveToFirst();
User u=new User(Integer.valueOf(mCursor.getString(0)),mCursor.getString(1),mCursor.getString(2));
return u;
}else
return null;
}
}
미리 감사드립니다.
포스트 오류를 보여주는 로그 캣을. – Barak
기기에서 앱을 실행하는 동안 logcat을 확인하는 방법은 무엇입니까? –
내 모바일처럼 안드로이드 (안드로이드 4)의 새로운 버전으로 에뮬레이터에서 앱을 실행 해 보았습니다. 이제 새로운 에뮬레이터에서 작동하지 않습니다! –