Android: не видит имя приложения в data \ data - PullRequest
0 голосов
/ 29 февраля 2012

Я пытался использовать SQLite на Android.Я хочу посмотреть файл моей базы данных.Итак, я использую Android File Explorer и просматриваю эту ссылку: Data\data\App_name Но в Data\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);
        }
    }

, а вторая мояПомощник базы данных:

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) {
    }

}

Есть ли проблема в двух файлах?Если есть, пожалуйста, скажите мне, что.А если нет, скажите, пожалуйста, как решить эту проблему.

спасибо :)

@ Редактировать: я добавляю свой скриншот папки с данными.(Нет файла в папке lib)

Screenshot

Ответы [ 3 ]

1 голос
/ 29 февраля 2012

проблема, связанная с базой данных, будет решена путем обновления ниже в вашем коде.

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.приложение и здесь вы можете увидеть папку базы данных, где вы можете увидеть все ваши базы данных, созданные applicationatio enter image description here n

0 голосов
/ 29 февраля 2012

Это не Data \ data \ App_name, это будет Data \ data \ package_name.Так что в вашем случае это будет Data \ data \ com.app \ Попробуйте поискать там ваш файл базы данных.

0 голосов
/ 29 февраля 2012

фактически ваша база данных не создается из-за неправильного запроса.

напишите ваш запрос как:

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

один раз, файл БД создается, затем вы можете просматривать до нужного места

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...