我使用的標準方法,我從流行的記事本示例中學到了建立我的第一個的應用程序。
但我陷入了一個奇怪的問題。
SQLite數據庫文件(.db)未在/ data/data/package/databases中創建。我從HeadFirst android dev交叉檢查清單文件和OpenHelper文件。書(我正在使用它作爲參考),但我發現自己無法弄清楚爲什麼數據庫文件沒有創建..
是否有任何特殊的權限或我們需要切換到讓它工作?
奇怪的是,它對於預先加載的例子工作正常。意思是爲記事本示例創建'.db'文件,但是當我嘗試時,它失敗。 :(
這裏有我的文件沒有創建sqlite數據庫
包 - database.test
1 AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Database_testActivity"
android:label="@string/app_name" >
</activity>
</application>
2.TestOpenHelper.java
package database.test;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class TestOpenHelper extends SQLiteOpenHelper {
TestOpenHelper(Context context){
super(context,"mydb.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase database){
database.execSQL("create table test_1 " + " (field1 integer primary key, field2 integer);");
}
public void onUpgrade (SQLiteDatabase database, int oldVersion, int newVersion){
database.execSQL("drop table if exists test1");
onCreate(database);
}
}
3.Database_testActivity.java
package database.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
public class Database_testActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listview = (ListView)findViewById(R.id.test_list);
TestAdapter ta = new TestAdapter();
listview.setAdapter(ta);
TestOpenHelper openHelper = new TestOpenHelper(this);
}
}
我知道它的一個非常基本的問題,但我一直在努力解決這個去年15天現在我完全沮喪。
請幫助..
你應該在不同的地方使用'Log'並監視'logcat'來跟蹤發生了什麼。此外,我可能是錯的,但你有沒有嘗試在「TestOpenHelper」構造函數中使用「mydb」作爲db名稱?正如我所說,我可能是錯的,但我不禁感覺使用文件擴展名(如「mydb.db」)可能會導致問題。 – Squonk
你可以拋出一些'使用日誌'。我嘗試了各種名字,但沒有任何反應。 謝謝 – Bond
也是每個應用程序。 in/data/data以com.android.something開頭,但我的不是。它可以成爲我的問題的原因? – Bond