我注意到,openOrCreateDatabase只能在模拟器中使用,而不能在电话上使用,当我右键单击该项目并“以Android应用程序运行”。我已经检查了DDMS,并且通过模拟器成功创建了数据库,但不是真正的设备。在手机上进行测试时,我根本没有收到任何错误信息。是的,我知道数据库辅助类,我也尝试过,没有错误信息。所以我想知道,是否存在权限问题?需要设置某种配置以便在电话上测试时创建SQLite数据库?任何帮助表示赞赏。谢谢。android openOrCreateDatabase只能在模拟器中运行
P.S.我与本教程如下:http://www.youtube.com/watch?v=OUoGnvz_Yw4
编辑添加代码: 这是...在仿真器工作正常,没有任何反应设备。任何帮助表示赞赏。再次感谢。
package com.solitario.dbtest1;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = this.openOrCreateDatabase("dbtest1.db",MODE_PRIVATE,null);
db.execSQL("CREATE TABLE IF NOT EXISTS FunnyNames (email VARCHAR, firstName VARCHAR, lastName VARCHAR);");
db.close();
}
}
编辑回应罗布的问题: 更加注重我的logcat,我看到下面两行:
08-07 21:44:33.439: D/Database(2936): dbopen(): path = /data/data/com.solitario.dbtest1/databases/dbtest1.db, flag = 6
08-07 21:44:33.439: D/Database(2936): dbopen(): path = /data/data/com.solitario.dbtest1/databases/dbtest1.db, free size = 888
我试图通过键入以下到我的终端拉数据库,并获得了“权限被拒绝”。
[email protected]:~/sdk/platform-tools$ sudo ./adb pull /data/data/com.solitario.dbtest1/databases/dbtest1.db
failed to copy '/data/data/com.solitario.dbtest1/databases/dbtest1.db' to './dbtest1.db': Permission denied
所以搞清楚终端会给我不同的反应,如果我试图把它不存在的文件,我走进我的机器人设置,清除应用程序的数据,但并没有卸载的应用。然后再次尝试从终端上拉数据库,并得到一个“不存在”。
[email protected]:~/sdk/platform-tools$ sudo ./adb pull /data/data/com.solitario.dbtest1/databases/dbtest1.db
remote object '/data/data/com.solitario.dbtest1/databases/dbtest1.db' does not exist
这样看来,它的确在创建数据库,但DDMS不会告诉你一个数据库创建时,也不会对终端让你把它拉,以便看看它。
因此,我想修改我的问题......在构建Android应用程序并在实际设备上测试时,如何验证您的命令已成功?有哪些工具可以验证我的查询是否已在droid上执行?
再次感谢您的阅读和您的回应!
您好,我已经与Android的DB工作了公平一点,我不知道如何帮助。在我看来,这个问题是创建和发布你最小的失败例子的好选择。 – James 2012-08-07 21:07:32
发布一些代码,以便我们可以看到你在做什么。 – Barak 2012-08-07 22:11:02
它不是创建数据库,还是只是无法导航到设备上的数据库?在真实(未根据)设备上创建数据库的应用程序目录对您而言不可见。 – Rob 2012-08-08 00:21:29