· 7 years ago · Sep 12, 2018, 01:50 PM
1Android:Sqlite database errors
2public class DataBaseHelper extends SQLiteOpenHelper {
3
4// default system path of your application database.
5// private static String DB_PATH = "/data/data/com.tanzanite.operasoft/databases/";
6
7private static String DB_PATH = "/sdcard/";
8
9private static String DB_NAME = "snowman";
10
11private static SQLiteDatabase myDataBase;
12
13private Context myContext;
14
15private DataBaseHelper dbHelper;
16
17
18/**
19 * Constructor Takes and keeps a reference of the passed context in order to
20 * access to the application assets and resources.
21 *
22 * @param context
23 */
24public DataBaseHelper(Context context) {
25
26 super(context, DB_NAME, null, 1);
27
28 this.myContext = context;
29}
30
31public void TestAdapter(Context context)
32{
33 this.myContext= context;
34}
35
36public static final String TABLE_NAME = "Login";
37private static final int DATABASE_VERSION= 2;
38
39private static final String DATABASE_NAME="snowman";
40
41
42public static final String COLUMN_ID = "_id";
43public static final String COLUMN_NAME = "employee_id";
44public static final String COLUMN_TRUCKID = "truck_id";
45
46
47public static final int NAME_COLUMN=1;
48public static final String KEY_CREATION_DATE="creation_date";
49public static final String KEY_TASK="task";
50
51
52/**
53 * Creates a empty database on the system and rewrites it with your own
54 * database.
55 * */
56
57private static final String DATABASE_CREATE = "create table "
58 + TABLE_NAME + "( " + COLUMN_ID + " integer primary key autoincrement, "
59 + COLUMN_TRUCKID+ " text not null, "
60 + COLUMN_NAME+ " text not null, )";
61
62
63public void createDataBase() throws IOException {
64
65 boolean dbExist = checkDataBase();
66
67 if (dbExist) {
68 // do nothing - database already exist
69 } else {
70
71 // By calling this method and empty database will be created into
72 // the default system path
73 // of your application so we are gonna be able to overwrite that
74 // database with our database.
75 //this.getReadableDatabase();
76
77 try {
78
79 copyDataBase();
80
81 } catch (IOException e) {
82
83 throw new Error("Error copying database");
84
85 }
86 }
87
88}
89
90public DataBaseHelper open() throws SQLException
91{
92 //myDataBase = dbHelper.getWritableDatabase();
93 return this;
94}
95
96
97/**
98 * Check if the database already exist to avoid re-copying the file each
99 * time you open the application.
100 *
101 * @return true if it exists, false if it doesn't
102 */
103private boolean checkDataBase() {
104
105SQLiteDatabase checkDB = null;
106
107 try {
108 String myPath = DB_PATH + DB_NAME;
109 checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
110
111 } catch (SQLiteException e) {
112 String myPath = DB_PATH + DB_NAME;
113 File dbfile = new File(myPath );
114 SQLiteDatabase.openOrCreateDatabase(dbfile, null);
115
116 //throw new Error("Database does't exist yet.");
117
118 }
119
120 if (checkDB != null) {
121
122 checkDB.close();
123
124 }
125
126 return checkDB != null ? true : false;
127}
128
129/**
130 * Copies your database from your local assets-folder to the just created
131 * empty database in the system folder, from where it can be accessed and
132 * handled. This is done by transfering bytestream.
133 * */
134private void copyDataBase() throws IOException {
135
136 // Open your local db as the input stream
137 InputStream myInput = myContext.getAssets().open(DB_NAME);
138
139 // Path to the just created empty db
140 String outFileName = DB_PATH + DB_NAME;
141
142 // Open the empty db as the output stream
143 OutputStream myOutput = new FileOutputStream(outFileName);
144
145 // transfer bytes from the inputfile to the outputfile
146 byte[] buffer = new byte[128];
147 int length;
148 while ((length = myInput.read(buffer)) > 0) {
149 myOutput.write(buffer, 0, length);
150 }
151
152 // Close the streams
153 myOutput.flush();
154 myOutput.close();
155 myInput.close();
156
157}
158
159public void openDataBase() throws SQLException {
160
161 // Open the database
162 String myPath = DB_PATH + DB_NAME;
163 myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
164 return;
165
166}
167
168public String logindetails()
169{
170 open();
171 Cursor c=myDataBase.query(TABLE_NAME,
172 new String[]{COLUMN_NAME,
173 COLUMN_TRUCKID,
174
175 },null, null, null, null, null);
176 String b="";
177
178 c.close();
179 myDataBase.close();
180 return b;
181}
182
183public void insert(String a, String b){
184
185 ContentValues vals = new ContentValues();
186 vals.put(COLUMN_TRUCKID, "CM-3456");
187 vals.put(COLUMN_NAME,"Sachin");
188 //vals.put(KEY_PIN, "12345");
189
190 vals.put(COLUMN_TRUCKID, "HR-6788");
191 vals.put(COLUMN_NAME,"Sameer");
192 //vals.put(KEY_PIN, "54321");
193
194 vals.put(COLUMN_ID, "AM-6123");
195 vals.put(COLUMN_NAME,"Sahu");
196 //vals.put(KEY_PIN, "3452");
197
198
199 myDataBase.close();
200
201
202}
203
204public Cursor fetchdata()
205{
206 open();
207 Cursor c=myDataBase.query(TABLE_NAME,
208 new String[]{COLUMN_NAME,
209 COLUMN_TRUCKID,
210
211 },null, null, null, null, null);
212 c.moveToLast();
213 myDataBase.close();
214 return c;
215}
216
217
218public static SQLiteDatabase getDataBase() {
219 return myDataBase;
220
221}
222
223@Override
224public synchronized void close() {
225
226 if (myDataBase != null)
227 myDataBase.close();
228
229 super.close();
230
231}
232
233@Override
234public void onCreate(SQLiteDatabase db) {
235 try{
236
237 db.execSQL(DATABASE_CREATE);
238 }catch(Exception e)
239 {
240 Log.v( "Press_Data","exception in table created");
241 }
242
243@Override
244public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
245
246}
247
24806-14 18:22:27.233: D/dalvikvm(25087): GC_CONCURRENT freed 757K, 48% free 3547K/6727K, external 1625K/2137K, paused 4ms+4ms
24906-14 18:22:27.393: I/net.osmand(25087): BaseOsmandRender Init render default for 738 ms
25006-14 18:22:27.523: D/dalvikvm(25087): GC_EXTERNAL_ALLOC freed 123K, 46% free 3635K/6727K, external 1625K/2137K, paused 62ms
25106-14 18:22:27.633: D/AndroidRuntime(25087): Shutting down VM
25206-14 18:22:27.633: W/dalvikvm(25087): threadid=1: thread exiting with uncaught exception (group=0x40015560)
25306-14 18:22:27.663: E/AndroidRuntime(25087): FATAL EXCEPTION: main
25406-14 18:22:27.663: E/AndroidRuntime(25087): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tanzanite.operasoft/com.tanzanite.operasoft.activity.Sw_LoginScreenActivity}: java.lang.NullPointerException
25506-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
25606-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
25706-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
25806-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
25906-14 18:22:27.663: E/AndroidRuntime(25087): at android.os.Handler.dispatchMessage(Handler.java:99)
26006-14 18:22:27.663: E/AndroidRuntime(25087): at android.os.Looper.loop(Looper.java:130)
26106-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread.main(ActivityThread.java:3683)
26206-14 18:22:27.663: E/AndroidRuntime(25087): at java.lang.reflect.Method.invokeNative(Native Method)
26306-14 18:22:27.663: E/AndroidRuntime(25087): at java.lang.reflect.Method.invoke(Method.java:507)
26406-14 18:22:27.663: E/AndroidRuntime(25087): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
26506-14 18:22:27.663: E/AndroidRuntime(25087): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
26606-14 18:22:27.663: E/AndroidRuntime(25087): at dalvik.system.NativeStart.main(Native Method)
26706-14 18:22:27.663: E/AndroidRuntime(25087): Caused by: java.lang.NullPointerException
26806-14 18:22:27.663: E/AndroidRuntime(25087): at com.tanzanite.operasoft.database.DataBaseHelper.fetchdata(DataBaseHelper.java:222)
26906-14 18:22:27.663: E/AndroidRuntime(25087): at com.tanzanite.operasoft.activity.Sw_LoginScreenActivity.onCreate(Sw_LoginScreenActivity.java:52)
27006-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
27106-14 18:22:27.663: E/AndroidRuntime(25087): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
27206-14 18:22:27.663: E/AndroidRuntime(25087): ... 11 more
27306-14 18:28:37.603: D/dalvikvm(26440): GC_CONCURRENT freed 757K, 48% free 3541K/6727K, external 1625K/2137K, paused 3ms+3ms
27406-14 18:28:37.773: I/net.osmand(26440): BaseOsmandRender Init render default for 611 ms
27506-14 18:28:37.873: D/dalvikvm(26440): GC_EXTERNAL_ALLOC freed 122K, 46% free 3633K/6727K, external 1625K/2137K, paused 51ms
27606-14 18:28:38.013: D/AndroidRuntime(26440): Shutting down VM
27706-14 18:28:38.013: W/dalvikvm(26440): threadid=1: thread exiting with uncaught exception (group=0x40015560)
27806-14 18:28:38.033: E/AndroidRuntime(26440): FATAL EXCEPTION: main
27906-14 18:28:38.033: E/AndroidRuntime(26440): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tanzanite.operasoft/com.tanzanite.operasoft.activity.Sw_LoginScreenActivity}: java.lang.NullPointerException
28006-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
28106-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
28206-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
28306-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
28406-14 18:28:38.033: E/AndroidRuntime(26440): at android.os.Handler.dispatchMessage(Handler.java:99)
28506-14 18:28:38.033: E/AndroidRuntime(26440): at android.os.Looper.loop(Looper.java:130)
28606-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread.main(ActivityThread.java:3683)
28706-14 18:28:38.033: E/AndroidRuntime(26440): at java.lang.reflect.Method.invokeNative(Native Method)
28806-14 18:28:38.033: E/AndroidRuntime(26440): at java.lang.reflect.Method.invoke(Method.java:507)
28906-14 18:28:38.033: E/AndroidRuntime(26440): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
29006-14 18:28:38.033: E/AndroidRuntime(26440): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
29106-14 18:28:38.033: E/AndroidRuntime(26440): at dalvik.system.NativeStart.main(Native Method)
29206-14 18:28:38.033: E/AndroidRuntime(26440): Caused by: java.lang.NullPointerException
29306-14 18:28:38.033: E/AndroidRuntime(26440): at com.tanzanite.operasoft.database.DataBaseHelper.fetchdata(DataBaseHelper.java:222)
29406-14 18:28:38.033: E/AndroidRuntime(26440): at com.tanzanite.operasoft.activity.Sw_LoginScreenActivity.onCreate(Sw_LoginScreenActivity.java:52)
29506-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
29606-14 18:28:38.033: E/AndroidRuntime(26440): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
29706-14 18:28:38.033: E/AndroidRuntime(26440): ... 11 more
29806-14 18:40:55.423: D/dalvikvm(29844): GC_CONCURRENT freed 759K, 48% free 3553K/6727K, external 1625K/2137K, paused 5ms+3ms
29906-14 18:40:55.633: I/net.osmand(29844): BaseOsmandRender Init render default for 841 ms
30006-14 18:40:55.773: D/dalvikvm(29844): GC_EXTERNAL_ALLOC freed 122K, 46% free 3633K/6727K, external 1625K/2137K, paused 58ms
30106-14 18:40:55.913: D/AndroidRuntime(29844): Shutting down VM
30206-14 18:40:55.913: W/dalvikvm(29844): threadid=1: thread exiting with uncaught exception (group=0x40015560)
30306-14 18:40:55.943: E/AndroidRuntime(29844): FATAL EXCEPTION: main
30406-14 18:40:55.943: E/AndroidRuntime(29844): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tanzanite.operasoft/com.tanzanite.operasoft.activity.Sw_LoginScreenActivity}: java.lang.NullPointerException
30506-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
30606-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
30706-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
30806-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
30906-14 18:40:55.943: E/AndroidRuntime(29844): at android.os.Handler.dispatchMessage(Handler.java:99)
31006-14 18:40:55.943: E/AndroidRuntime(29844): at android.os.Looper.loop(Looper.java:130)
31106-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread.main(ActivityThread.java:3683)
31206-14 18:40:55.943: E/AndroidRuntime(29844): at java.lang.reflect.Method.invokeNative(Native Method)
31306-14 18:40:55.943: E/AndroidRuntime(29844): at java.lang.reflect.Method.invoke(Method.java:507)
31406-14 18:40:55.943: E/AndroidRuntime(29844): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
31506-14 18:40:55.943: E/AndroidRuntime(29844): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
31606-14 18:40:55.943: E/AndroidRuntime(29844): at dalvik.system.NativeStart.main(Native Method)
31706-14 18:40:55.943: E/AndroidRuntime(29844): Caused by: java.lang.NullPointerException
31806-14 18:40:55.943: E/AndroidRuntime(29844): at com.tanzanite.operasoft.database.DataBaseHelper.fetchdata(DataBaseHelper.java:223)
31906-14 18:40:55.943: E/AndroidRuntime(29844): at com.tanzanite.operasoft.activity.Sw_LoginScreenActivity.onCreate(Sw_LoginScreenActivity.java:52)
32006-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
32106-14 18:40:55.943: E/AndroidRuntime(29844): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
32206-14 18:40:55.943: E/AndroidRuntime(29844): ... 11 more
32306-14 19:12:06.293: D/dalvikvm(5930): GC_CONCURRENT freed 763K, 48% free 3549K/6727K, external 1625K/2137K, paused 4ms+5ms
32406-14 19:12:06.443: I/net.osmand(5930): BaseOsmandRender Init render default for 689 ms
32506-14 19:12:06.553: D/dalvikvm(5930): GC_EXTERNAL_ALLOC freed 120K, 47% free 3632K/6727K, external 1625K/2137K, paused 64ms
32606-14 19:12:06.703: D/AndroidRuntime(5930): Shutting down VM
32706-14 19:12:06.703: W/dalvikvm(5930): threadid=1: thread exiting with uncaught exception (group=0x40015560)
32806-14 19:12:06.723: E/AndroidRuntime(5930): FATAL EXCEPTION: main
32906-14 19:12:06.723: E/AndroidRuntime(5930): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tanzanite.operasoft/com.tanzanite.operasoft.activity.Sw_LoginScreenActivity}: java.lang.NullPointerException
33006-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
33106-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
33206-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
33306-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
33406-14 19:12:06.723: E/AndroidRuntime(5930): at android.os.Handler.dispatchMessage(Handler.java:99)
33506-14 19:12:06.723: E/AndroidRuntime(5930): at android.os.Looper.loop(Looper.java:130)
33606-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread.main(ActivityThread.java:3683)
33706-14 19:12:06.723: E/AndroidRuntime(5930): at java.lang.reflect.Method.invokeNative(Native Method)
33806-14 19:12:06.723: E/AndroidRuntime(5930): at java.lang.reflect.Method.invoke(Method.java:507)
33906-14 19:12:06.723: E/AndroidRuntime(5930): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
34006-14 19:12:06.723: E/AndroidRuntime(5930): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
34106-14 19:12:06.723: E/AndroidRuntime(5930): at dalvik.system.NativeStart.main(Native Method)
34206-14 19:12:06.723: E/AndroidRuntime(5930): Caused by: java.lang.NullPointerException
34306-14 19:12:06.723: E/AndroidRuntime(5930): at com.tanzanite.operasoft.database.DataBaseHelper.fetchdata(DataBaseHelper.java:224)
34406-14 19:12:06.723: E/AndroidRuntime(5930): at com.tanzanite.operasoft.activity.Sw_LoginScreenActivity.onCreate(Sw_LoginScreenActivity.java:49)
34506-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
34606-14 19:12:06.723: E/AndroidRuntime(5930): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
34706-14 19:12:06.723: E/AndroidRuntime(5930): ... 11 more
348
349Caused by: java.lang.NullPointerException
35006-14 19:12:06.723: E/AndroidRuntime(5930): at com.tanzanite.operasoft.database.DataBaseHelper.fetchdata(DataBaseHelper.java:224)
35106-14 19:12:06.723: E/AndroidRuntime(5930): at com.tanzanite.operasoft.activity.Sw_LoginScreenActivity.onCreate(Sw_LoginScreenActivity.java:49)
352
353public Cursor fetchdata()
354{
355 open();
356 Cursor c=myDataBase.query(TABLE_NAME,
357 new String[]{COLUMN_NAME,
358 COLUMN_TRUCKID,
359
360 },null, null, null, null, null);
361 c.moveToLast();
362 myDataBase.close();
363 return c;
364}
365
366public DataBaseHelper open() throws SQLException
367{
368 //myDataBase = dbHelper.getWritableDatabase();
369 return this;
370}
371
372public String logindetails()
373{
374 open();
375 Cursor c=myDataBase.query(TABLE_NAME, new String[]{COLUMN_NAME, COLUMN_TRUCKID, },
376 null, null, null, null, null);
377 String b="";
378 c.close();
379 myDataBase.close();
380 return b;
381}
382
383private DatabaseHelper mDbHelper;
384
385mDbHelper = new DatabaseHelper(this); // instantiate the helper
386mDbHelper.openDataBase(); // open the db
387String ldetails = mDbHelper.logindetails(); // get logindetails string from db
388
389public String logindetails()
390{
391 String b="";
392 Cursor c=myDataBase.query(TABLE_NAME, new String[]{COLUMN_NAME, COLUMN_TRUCKID, },
393 null, null, null, null, null);
394 c.moveToFirst();
395 // Insert code to get data from cursor to string
396 c.close();
397 return b;
398}