Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Использование готовой базы SqLite из ресурсов - Программирование Android

05.12.2013, 21:35. Просмотров 2221. Ответов 7
Метки нет (Все метки)

Здравствуйте.

Мне необходимо в приложении использовать готовую базу, но для того чтобы её использовать я копирую её в то место где Android обычно хранит базы и начинаю её использовать. Всё работает хорошо, но есть одно НО. Если я захочу изменить в новой версии приложения готовую базу которую помещу в ресурсах Assets, то мое приложении никак на это не отреагирует. Помогите, мне сделать так, чтобы я как-то мог отслеживать, то, что базу которая в Android хранится необходимо заменить новой базой, так как в ресурсах (в новой версии приложения) она уже поменялась.

Вот код приложения:

Главный MainClass
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.util.ArrayList;
 
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class IdevOwnSqliteDbActivity extends ListActivity {
 
    //Хорошей практикой является задание имен полей БД константами
    private static final String TABLE_NAME = "friends";
    private static final String FRIEND_ID = "_id";
    private static final String FRIEND_NAME = "name";
 
    private SQLiteDatabase database;
    private ListView listView;
    private ArrayList friends;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        System.out.println(">>>> onCreate(IdevOwnSqliteDbActivity)()");
        
        //Наш ключевой хелпер
        ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this);
//        ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME);
        database = dbOpenHelper.openDataBase();
        //Все, база открыта!
        fillFreinds();
        setUpList();
    }
 
private void setUpList() {
    
       System.out.println(">>>> setUpList()");
    
    //Используем стандартный адаптер и layout элемента для краткости
    setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, friends));
    listView = getListView();
 
    //Подарим себе тост — для души
    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View view,
                        int position,long id) {
            Toast.makeText(getApplicationContext(),
                        ((TextView) view).getText() +
                         " could be iDev's friend",
                         Toast.LENGTH_SHORT).show();
        }
    });
}
 
//Извлечение элементов из базы данных
private void fillFreinds() {
    
    
       System.out.println(">>>> fillFreinds()");
    
    friends = new ArrayList<String>();
    Cursor friendCursor = database.query(TABLE_NAME,
                                             new String[] {FRIEND_ID, FRIEND_NAME},
                         null, null,null,null,
                                             FRIEND_NAME);
        friendCursor.moveToFirst();
        if(!friendCursor.isAfterLast()) {
            do {
                String name = friendCursor.getString(1);
                friends.add(name);
            } while (friendCursor.moveToNext());
        }
        friendCursor.close();
    }
}
и класс Halper
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
 
public class ExternalDbOpenHelper extends SQLiteOpenHelper {
 
    // Путь к папке с базами на устройстве
    private static String DB_PATH = "";
    // Имя файла с базой
    private static final String DB_NAME = "friends.sqlite";
    // версия базы данных
    private static final int DB_VERSION = 1;
    public SQLiteDatabase database;
    public final Context context;
 
    public SQLiteDatabase getDb() {
        System.out.println(">>>> getDb()");
        return database;
    }
 
    public ExternalDbOpenHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);// 1? its Database Version
 
        System.out.println(">>>> ExternalDbOpenHelper()");
 
        // Составим полный путь к базам для вашего приложения
        if (android.os.Build.VERSION.SDK_INT >= 4.2) {
            DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
        } else {
            DB_PATH = context.getString(R.string._data_data_)
                    + context.getPackageName() + "/databases/";
        }
        this.context = context;
    }
 
    // Создаст базу, если она не создана
    public void createDataBase() {
 
        System.out.println(">>>> createDataBase()");
 
        boolean dbExist = checkDataBase();
        if (!dbExist) {
            this.getReadableDatabase();
            try {
                copyDataBase();
            } catch (IOException e) {
                Log.e(this.getClass().toString(), "Copying error");
                throw new Error("Error copying database!");
            }
        } else {
            Log.i(this.getClass().toString(), "Database already exists");
        }
    }
 
    // Проверка существования базы данных
    private boolean checkDataBase() {
 
        System.out.println(">>>> checkDataBase()");
 
        File dbFile = new File(DB_PATH + DB_NAME);
        return dbFile.exists();
    }
 
    // Метод копирования базы
    private void copyDataBase() throws IOException {
 
        System.out.println(">>>> copyDataBase()");
 
        // Открываем поток для чтения из уже созданной нами БД
        // источник в assets
        InputStream externalDbStream = context.getAssets().open(DB_NAME);
 
        // Путь к уже созданной пустой базе в андроиде
        String outFileName = DB_PATH + DB_NAME;
 
        // Теперь создадим поток для записи в эту БД побайтно
        OutputStream localDbStream = new FileOutputStream(outFileName);
 
        // Собственно, копирование
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = externalDbStream.read(buffer)) > 0) {
            localDbStream.write(buffer, 0, bytesRead);
        }
        // закроем потоки
        localDbStream.close();
        externalDbStream.close();
 
    }
 
    public SQLiteDatabase openDataBase() throws SQLException {
 
        System.out.println(">>>> openDataBase()");
 
        String path = DB_PATH + DB_NAME;
        if (database == null) {
            createDataBase();
            database = SQLiteDatabase.openDatabase(path, null,
                    SQLiteDatabase.OPEN_READWRITE);
        }
        return database;
    }
 
    @Override
    public synchronized void close() {
 
        System.out.println(">>>> close()");
 
        if (database != null) {
            database.close();
        }
        super.close();
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
 
        System.out.println(">>>> onCreate()");
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
        if (newVersion > oldVersion) {
 
            System.out.println(">>>> onUpgrade - newVersion");
 
        }
 
        System.out.println(">>>> onUpgrade");
 
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.12.2013, 04:43     Использование готовой базы SqLite из ресурсов #2
Сам никогда ничего подобного (пока) не делал... Как вариант могу предложить в программу вставить константу с версией базы (123). А в базу свою системную таблицу для "настроек" (которая не нужна программе) и в нее добавить запись типа "версия базы=122". Осталось сравнить... Это будет индикатором необходимости замены. Как замянять - не спрашивайте (с Assets не работал)
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
06.12.2013, 17:25  [ТС]     Использование готовой базы SqLite из ресурсов #3
Цитата Сообщение от Tester64 Посмотреть сообщение
Сам никогда ничего подобного (пока) не делал... Как вариант могу предложить в программу вставить константу с версией базы (123). А в базу свою системную таблицу для "настроек" (которая не нужна программе) и в нее добавить запись типа "версия базы=122". Осталось сравнить... Это будет индикатором необходимости замены. Как замянять - не спрашивайте (с Assets не работал)
Не совсем понимаю, как вы это представляете, может подробней опишете?

С этим разобрался, спасибо.

НО

И ещё есть проблема. При передача другой версии в конструктор
Java
1
2
public ExternalDbOpenHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
метод onUpgrade не вызывается. Почему?????
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.12.2013, 21:21     Использование готовой базы SqLite из ресурсов #4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
метод onUpgrade не вызывается. Почему?????
Не знаю. Сам этим никогда не пользуюсь. При старте программы сравниваю версию доступной базы с той которая нужна программе и САМ делаю все изменения в старой базе чтобы она соответствовала новой программе. Вы тоже onUpgrade можете ВРУЧНУЮ вызывать сразу после проверки версии. Причем в зависимости от того какая версия была и какая нужна можно запускать РАЗНЫЕ обработки (особенно при пропущеных НЕСКОЛЬКИХ версиях) 120->122->123.
Kuzyavka
4 / 4 / 2
Регистрация: 07.02.2013
Сообщений: 54
03.03.2015, 16:56     Использование готовой базы SqLite из ресурсов #5
Здравствуйте! Помогите!!!
Не получается скопировать готовую базу из assets
Получаю вот такой ответ в catlog:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
03-03 13:45:05.734    7453-7459/yarik.my_copy_db I/dalvikvm﹕ threadid=3: reacting to signal 3
03-03 13:45:05.964    7453-7459/yarik.my_copy_db I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
03-03 13:45:06.204    7453-7459/yarik.my_copy_db I/dalvikvm﹕ threadid=3: reacting to signal 3
03-03 13:45:06.244    7453-7459/yarik.my_copy_db I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
03-03 13:45:06.304    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
03-03 13:45:06.304    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 11351: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
03-03 13:45:06.304    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-03 13:45:06.314    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
03-03 13:45:06.314    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 11357: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
03-03 13:45:06.314    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-03 13:45:06.314    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.view.ViewGroup.onWindowSystemUiVisibilityChanged, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onWindowSystemUiVisibilityChanged
03-03 13:45:06.324    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 11359: Landroid/view/ViewGroup;.onWindowSystemUiVisibilityChanged (I)V
03-03 13:45:06.324    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0008
03-03 13:45:06.334    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
03-03 13:45:06.334    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 9045: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
03-03 13:45:06.334    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e
03-03 13:45:06.504    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.view.ViewGroup.onRtlPropertiesChanged, referenced from method android.support.v7.widget.Toolbar.onRtlPropertiesChanged
03-03 13:45:06.504    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 11354: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
03-03 13:45:06.504    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0007
03-03 13:45:06.544    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
03-03 13:45:06.544    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 366: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
03-03 13:45:06.544    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-03 13:45:06.554    7453-7453/yarik.my_copy_db I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
03-03 13:45:06.554    7453-7453/yarik.my_copy_db W/dalvikvm﹕ VFY: unable to resolve virtual method 388: Landroid/content/res/TypedArray;.getType (I)I
03-03 13:45:06.554    7453-7453/yarik.my_copy_db D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-03 13:45:06.704    7453-7459/yarik.my_copy_db I/dalvikvm﹕ threadid=3: reacting to signal 3
03-03 13:45:06.724    7453-7459/yarik.my_copy_db I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
03-03 13:45:06.795    7453-7453/yarik.my_copy_db I/SqliteDatabaseCpp﹕ sqlite returned: error code = 14, msg = cannot open file at line 27701 of [8609a15dfa], db=/data/data/yarik.my_copy_db/databases/my_db
03-03 13:45:06.795    7453-7453/yarik.my_copy_db I/SqliteDatabaseCpp﹕ sqlite returned: error code = 14, msg = os_unix.c: open() at line 27701 - "" errno=2 path=/data/data/yarik.my_copy_db/databases/my_db, db=/data/data/yarik.my_copy_db/databases/my_db
03-03 13:45:06.804    7453-7453/yarik.my_copy_db E/SqliteDatabaseCpp﹕ sqlite3_open_v2("/data/data/yarik.my_copy_db/databases/my_db", &handle, 1, NULL) failed
03-03 13:45:06.814    7453-7453/yarik.my_copy_db E/SQLiteDatabase﹕ Failed to open the database. closing it.
    android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
            at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
            at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1013)
            at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)
            at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:962)
            at yarik.my_copy_db.DataBaseHelper.checkDataBase(DataBaseHelper.java:68)
            at yarik.my_copy_db.DataBaseHelper.createDataBase(DataBaseHelper.java:39)
            at yarik.my_copy_db.MainActivity.onCreate(MainActivity.java:24)
            at android.app.Activity.performCreate(Activity.java:4465)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
            at android.app.ActivityThread.access$600(ActivityThread.java:123)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4424)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
            at dalvik.system.NativeStart.main(Native Method)
03-03 13:45:06.874    7453-7453/yarik.my_copy_db W/System.err﹕ java.io.FileNotFoundException: my_db
03-03 13:45:06.884    7453-7453/yarik.my_copy_db W/System.err﹕ at android.content.res.AssetManager.openAsset(Native Method)
03-03 13:45:06.884    7453-7453/yarik.my_copy_db W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:315)
03-03 13:45:06.884    7453-7453/yarik.my_copy_db W/System.err﹕ at android.content.res.AssetManager.open(AssetManager.java:289)
03-03 13:45:06.895    7453-7453/yarik.my_copy_db W/System.err﹕ at yarik.my_copy_db.DataBaseHelper.copyDataBase(DataBaseHelper.java:85)
03-03 13:45:06.895    7453-7453/yarik.my_copy_db W/System.err﹕ at yarik.my_copy_db.DataBaseHelper.createDataBase(DataBaseHelper.java:48)
03-03 13:45:06.895    7453-7453/yarik.my_copy_db W/System.err﹕ at yarik.my_copy_db.MainActivity.onCreate(MainActivity.java:24)
03-03 13:45:06.904    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.Activity.performCreate(Activity.java:4465)
03-03 13:45:06.904    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-03 13:45:06.914    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
03-03 13:45:06.914    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-03 13:45:06.914    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-03 13:45:06.914    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-03 13:45:06.924    7453-7453/yarik.my_copy_db W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:99)
03-03 13:45:06.924    7453-7453/yarik.my_copy_db W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
03-03 13:45:06.924    7453-7453/yarik.my_copy_db W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:4424)
03-03 13:45:06.924    7453-7453/yarik.my_copy_db W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
03-03 13:45:06.934    7453-7453/yarik.my_copy_db W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511)
03-03 13:45:06.934    7453-7453/yarik.my_copy_db W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-03 13:45:06.934    7453-7453/yarik.my_copy_db W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-03 13:45:06.954    7453-7453/yarik.my_copy_db W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
03-03 13:45:07.214    7453-7459/yarik.my_copy_db I/dalvikvm﹕ threadid=3: reacting to signal 3
03-03 13:45:07.234    7453-7459/yarik.my_copy_db I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
03-03 13:45:07.274    7453-7457/yarik.my_copy_db D/dalvikvm﹕ GC_CONCURRENT freed 239K, 4% free 9230K/9607K, paused 4ms+4ms
03-03 13:45:07.404    7453-7453/yarik.my_copy_db D/gralloc_goldfish﹕ Emulator without GPU emulation detected.
Сжатый проект прилагается!
Вложения
Тип файла: rar My_Copy_db.rar (4.78 Мб, 13 просмотров)
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.03.2015, 17:26     Использование готовой базы SqLite из ресурсов #6
Kuzyavka, а где вообще папка assets?
Kuzyavka
4 / 4 / 2
Регистрация: 07.02.2013
Сообщений: 54
03.03.2015, 17:32     Использование готовой базы SqLite из ресурсов #7
Где-то читал, что папка assets должна быть на уровне с папкой res
(З.Ы. папка assets была автоматически создана студией, руками в папках проекта ничего не правилось и не создавалось/добавлялось, кроме готового файла БД)
Миниатюры
Использование готовой базы SqLite из ресурсов  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2015, 17:34     Использование готовой базы SqLite из ресурсов
Еще ссылки по теме:
Android SMS рассылка контактам с базы SQLite
Android Вытащить информацию из базы данных Sqlite
Как отобразить запись из базы sqlite Android
Где хранится файл базы данных SQLite на устройстве? Android
Android При переносе приложения на карту памяти где хранятся SharedPreferences, SQLite базы и тп ?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.03.2015, 17:34     Использование готовой базы SqLite из ресурсов #8
Kuzyavka, не не не, src/main/assets/ вот так должно быть
Yandex
Объявления
03.03.2015, 17:34     Использование готовой базы SqLite из ресурсов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru