无法打开数据库android Sqlite
嗨,我开始学习android,我试过这个代码。它显示无法打开数据库,如果创建的路径错误,则显示我的路径是否正确。有人能帮忙吗无法打开数据库android Sqlite,android,android-sqlite,Android,Android Sqlite,嗨,我开始学习android,我试过这个代码。它显示无法打开数据库,如果创建的路径错误,则显示我的路径是否正确。有人能帮忙吗 public class Sql3Activity extends Activity { public static final String TAG = "DatabaseHelper"; public static final String DATABASE_NAME = "mydb";
public class Sql3Activity extends Activity
{
public static final String TAG = "DatabaseHelper";
public static final String DATABASE_NAME = "mydb";
public static final String TRACKS_TABLE = "tracks";
public static final String TRACK_INFO_TABLE = "track_info";
public final String TRACKS_TABLE_CREATE = "create table " + TRACKS_TABLE
+ " (_id integer primary key autoincrement, title text not null, description text null, created_at date not null);";
public static final String TRACK_INFO_TABLE_CREATE = "create table "
+ TRACK_INFO_TABLE
+ " (_id integer primary key autoincrement, track_id integer not null, latitude real not null, longitude real not null, altitude real not null, created_at date not null);";
public SQLiteDatabase database;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sql3);
final String DATABASE_FILE_PATH = Environment.getExternalStorageDirectory()+"/test";
Toast.makeText(Sql3Activity .this,DATABASE_FILE_PATH,Toast.LENGTH_LONG).show();
try{
database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH + File.separator + DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE);
Toast.makeText(Sql3Activity .this,"Database Open",Toast.LENGTH_LONG).show();
}catch(Exception e)
{
Toast.makeText(Sql3Activity .this,"ERROR"+e,Toast.LENGTH_LONG).show();
}
要在外部存储器上读取或写入文件,您的应用程序必须获得
读取外部存储器
或写入外部存储器
系统权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
此代码是工作代码。首先,创建扩展SQLiteOpenHelper的类并更改db文件路径
class test extends SQLiteOpenHelper {
public test(Context context) {
super(context, "/sdcard/Download/123.db", null, SQLite.DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
并使用游标获取数据
test t = new test(this);
Cursor cur = t.getWritableDatabase().rawQuery("SELECT * FROM COMPANY", null);
while (cur.moveToNext()) {
Log.i("chauster", ""+cur.getString(1));
}
cur.close();
t.close();
显示异常的堆栈跟踪
e
使用SQLiteOpenHelper处理数据库显示日志cat错误..是否要从外部存储(如xxx.sqlite)打开sqlite数据库?是否添加了从SD卡读取的权限?我是否提到了SD卡的确切路径?