我注意到,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