0

AndroidでSQLiteを使用しようとしました。データベースファイルを見たいです。だから、私はAndroid File Explorerこのリンクを使用して閲覧 Data\data\App_nameData\dataます。アプリ名が表示されません。(以下のコードは次のようになります: com/app/TimeTracker)

テストするコードは次のとおりです。

最初は私のメインプログラムです:

package com.app;
    public class TimeTrackerActivity extends Activity {    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TimeTrackerDatabase database = new TimeTrackerDatabase(this);
        }
    }

そして2番目は私のデータベースヘルパーです:

package com.app;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class TimeTrackerDatabase extends SQLiteOpenHelper {

    public TimeTrackerDatabase(Context context){
        super(context, "timetracker.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(
                "CREATE TABLE timerecords"+"id INTEGER PRIMARY KEY, time TEXT, notes TEXT)"
        );
        
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
    }

}

上記の 2 つのファイルに問題はありますか? ある場合は、何を教えてください。そうでない場合は、この問題を解決する方法を教えてください。

ありがとう :)

@編集: データ フォルダーのスクリーンショットを追加します。(lib フォルダにファイルがありません)

スクリーンショット

4

3 に答える 3

1

データベース関連の問題は、コードを以下に更新することで解決されます。

package com.app;
    public class TimeTrackerActivity extends Activity {    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TimeTrackerDatabase database = new TimeTrackerDatabase(this);
SQLiteDatabase db = database.getWritableDatabase();   //Add this line.
        }
    }

public class TimeTrackerDatabase extends SQLiteOpenHelper {

    public TimeTrackerDatabase(Context context){
        super(context, "timetracker.db", null, 2);

    }


@Override
    public void onCreate(SQLiteDatabase database) {

     database.execSQL(

                "CREATE TABLE timerecords" +
                "(id INTEGER PRIMARY KEY, time TEXT, notes TEXT)"

        );

    }

アプリがファイル エクスプローラーに表示されない場合は、data/data/com.app 以下のようにパッケージ名で検索する必要があります。ここでは、アプリケーションによって作成されたすべてのデータベースを確認できるデータベース フォルダーを確認できますここに画像の説明を入力

于 2012-02-29T11:44:12.593 に答える
0

実際には、クエリに問題があるため、データベースが作成されていません。

クエリを次のように記述します。

"CREATE TABLE IF NOT EXISTS timerecords
    (id INTEGER PRIMARY KEY, time TEXT, notes TEXT);"

db ファイルが作成されると、目的の場所まで参照できます。

于 2012-02-29T11:45:05.497 に答える
0

Data\data\App_name ではなく、Data\data\package_name になります。したがって、あなたの場合は Data\data\com.app\ になります。そこで db ファイルを探してみてください。

于 2012-02-29T12:04:22.280 に答える