Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666

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

05.12.2013, 21:35. Показов 4169. Ответов 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");
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2013, 21:35
Ответы с готовыми решениями:

Проблема с подключением готовой базы данных SQlite в android приложение
Не могу понять почему не работает. Прочитал кучу информации и вроде все правильно. Основное что мне надо - это достать данные из таблиц(ы)...

Room использование готовой базы
У меня есть готовая база данных, которую хочу добавить в проект, возникает вопрос, как это сделать более правильно. Вариант 1....

Использование готовой базы Djando
Как сгенерить модели из готовой худо-бедно описано (пришлось убрать схемы из постгре, но и ладно). А вот дальше как быть не понятно....

7
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
06.12.2013, 04:43
Сам никогда ничего подобного (пока) не делал... Как вариант могу предложить в программу вставить константу с версией базы (123). А в базу свою системную таблицу для "настроек" (которая не нужна программе) и в нее добавить запись типа "версия базы=122". Осталось сравнить... Это будет индикатором необходимости замены. Как замянять - не спрашивайте (с Assets не работал)
1
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
06.12.2013, 17:25  [ТС]
Цитата Сообщение от Tester64 Посмотреть сообщение
Сам никогда ничего подобного (пока) не делал... Как вариант могу предложить в программу вставить константу с версией базы (123). А в базу свою системную таблицу для "настроек" (которая не нужна программе) и в нее добавить запись типа "версия базы=122". Осталось сравнить... Это будет индикатором необходимости замены. Как замянять - не спрашивайте (с Assets не работал)
Не совсем понимаю, как вы это представляете, может подробней опишете?

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

НО

И ещё есть проблема. При передача другой версии в конструктор
Java
1
2
public ExternalDbOpenHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
метод onUpgrade не вызывается. Почему?????
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
06.12.2013, 21:21
Цитата Сообщение от Stylish2013 Посмотреть сообщение
метод onUpgrade не вызывается. Почему?????
Не знаю. Сам этим никогда не пользуюсь. При старте программы сравниваю версию доступной базы с той которая нужна программе и САМ делаю все изменения в старой базе чтобы она соответствовала новой программе. Вы тоже onUpgrade можете ВРУЧНУЮ вызывать сразу после проверки версии. Причем в зависимости от того какая версия была и какая нужна можно запускать РАЗНЫЕ обработки (особенно при пропущеных НЕСКОЛЬКИХ версиях) 120->122->123.
0
4 / 4 / 3
Регистрация: 07.02.2013
Сообщений: 54
03.03.2015, 16:56
Здравствуйте! Помогите!!!
Не получается скопировать готовую базу из 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 Мб, 18 просмотров)
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.03.2015, 17:26
Kuzyavka, а где вообще папка assets?
0
4 / 4 / 3
Регистрация: 07.02.2013
Сообщений: 54
03.03.2015, 17:32
Где-то читал, что папка assets должна быть на уровне с папкой res
(З.Ы. папка assets была автоматически создана студией, руками в папках проекта ничего не правилось и не создавалось/добавлялось, кроме готового файла БД)
Миниатюры
Использование готовой базы SqLite из ресурсов  
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.03.2015, 17:34
Kuzyavka, не не не, src/main/assets/ вот так должно быть
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2015, 17:34
Помогаю со студенческими работами здесь

Создание готовой программы из готовой базы данных
Добрый день. Есть полностью готовая база данных с таблицами, формами, отчетами. Короче полностью укомплектована. Как теперь...

Изменение ресурсов готовой программы (exe)
Здравствуйте уважаемые программисты, сисадмины и просто пользователи. Есть небольшая (я так думаю) проблемка. Что имеем: Программка...

Работа с готовой SQLite базой на андроид
Здравствуйте! Пытаюсь подключить готовую sqlite базу с помощью этого кода, взятого из интернета: package com.alexvsalex.HelpforMath; ...

Импорт готовой базы в приложение
Нужно использовать в приложении готовую базу, около 22 тыс записей. В голову приходит 2 варианта: 1. Добавить базу в assets и оттуда...

Генерация сущностей из готовой базы данных
Всем доброго времени суток. Подскажите пожалуйста: возможно ли как-нибудь сгенерировать Entity Framework-ом сущности из готовой базы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru