· 7 years ago · Sep 15, 2018, 10:04 PM
1Issues with opening an android app
208-06 09:37:41.262: I/dalvikvm(532): threadid=3: reacting to signal 3
308-06 09:37:41.343: I/dalvikvm(532): Wrote stack traces to '/data/anr/traces.txt'
408-06 09:37:41.643: D/gralloc_goldfish(532): Emulator without GPU emulation detected.
508-06 09:37:41.773: I/dalvikvm(532): threadid=3: reacting to signal 3
608-06 09:37:41.793: I/dalvikvm(532): Wrote stack traces to '/data/anr/traces.txt'
708-06 09:37:43.293: D/AndroidRuntime(532): Shutting down VM
808-06 09:37:43.303: W/dalvikvm(532): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
908-06 09:37:43.312: E/AndroidRuntime(532): FATAL EXCEPTION: main
1008-06 09:37:43.312: E/AndroidRuntime(532): java.lang.RuntimeException: Unable to start activity ComponentInfo{main.page/main.page.PersonalInfo}: java.lang.NullPointerException
1108-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
1208-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
1308-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread.access$600(ActivityThread.java:123)
1408-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
1508-06 09:37:43.312: E/AndroidRuntime(532): at android.os.Handler.dispatchMessage(Handler.java:99)
1608-06 09:37:43.312: E/AndroidRuntime(532): at android.os.Looper.loop(Looper.java:137)
1708-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread.main(ActivityThread.java:4424)
1808-06 09:37:43.312: E/AndroidRuntime(532): at java.lang.reflect.Method.invokeNative(Native Method)
1908-06 09:37:43.312: E/AndroidRuntime(532): at java.lang.reflect.Method.invoke(Method.java:511)
2008-06 09:37:43.312: E/AndroidRuntime(532): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
2108-06 09:37:43.312: E/AndroidRuntime(532): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
2208-06 09:37:43.312: E/AndroidRuntime(532): at dalvik.system.NativeStart.main(Native Method)
2308-06 09:37:43.312: E/AndroidRuntime(532): Caused by: java.lang.NullPointerException
2408-06 09:37:43.312: E/AndroidRuntime(532): at main.page.InfoDBAdapter.getAllContacts(InfoDBAdapter.java:113)
2508-06 09:37:43.312: E/AndroidRuntime(532): at main.page.PersonalInfo.onCreate(PersonalInfo.java:41)
2608-06 09:37:43.312: E/AndroidRuntime(532): at android.app.Activity.performCreate(Activity.java:4465)
2708-06 09:37:43.312: E/AndroidRuntime(532): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
2808-06 09:37:43.312: E/AndroidRuntime(532): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
2908-06 09:37:43.312: E/AndroidRuntime(532): ... 11 more
3008-06 09:37:43.694: I/dalvikvm(532): threadid=3: reacting to signal 3
3108-06 09:37:43.713: I/dalvikvm(532): Wrote stack traces to '/data/anr/traces.txt'
3208-06 09:37:43.923: I/dalvikvm(532): threadid=3: reacting to signal 3
3308-06 09:37:43.933: I/dalvikvm(532): Wrote stack traces to '/data/anr/traces.txt'
34
35@Override
36 public void onCreate(Bundle savedInstanceState)
37 {
38 super.onCreate(savedInstanceState);
39 setContentView(R.layout.info);
40
41 Cursor c = infoDB.getAllContacts();
42 startManagingCursor(c);
43
44 //Create an array to specify which fields want to display
45 String[] from = new String[] {"name"};
46
47 //Create an array of the display item want to bind our data to
48 int[] to = new int[] {R.id.fName};
49
50 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, from, to);
51 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
52 nameSpinner.setAdapter(adapter);
53
54 nameSpinner = (Spinner) findViewById(R.id.nameSpinner);
55
56public static final String KEY_ROWID = "_id";
57 public static final String KEY_NAME = "name";
58 public static final String KEY_DATE = "date";
59 public static final String KEY_TYPE = "type";
60 public static final String KEY_LIKES = "likes";
61 public static final String KEY_DISLIKES = "dislikes";
62
63 private static final String TAG = "InfoDBAdapter";
64
65 private static final String DATABASE_NAME = "friendsDB";
66 private static final String DATABASE_TABLE = "friends_info";
67 private static final int DATABASE_VERSION = 2;
68
69 private static final String DATABASE_CREATE = "create table friends_info(name_id integer primary key autoincrement, "
70 + "name text not null, date text not null, type text not null, likes text not null, dislikes text not null);";
71
72 private final Context context;
73
74 private DatabaseHelper DBHelper;
75 private SQLiteDatabase db;
76
77 public InfoDBAdapter(Context ctx)
78 {
79 this.context = ctx;
80 DBHelper = new DatabaseHelper(context);
81 }
82
83 private static class DatabaseHelper extends SQLiteOpenHelper
84 {
85 DatabaseHelper(Context context)
86 {
87 super(context, DATABASE_NAME, null, DATABASE_VERSION);
88 }
89
90 @Override
91 public void onCreate(SQLiteDatabase db)
92 {
93 try
94 {
95 db.execSQL(DATABASE_CREATE);
96 } catch (SQLException e)
97 {
98 e.printStackTrace();
99 }
100 }// end onCreate()
101
102 @Override
103 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
104 {
105 Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
106 + newVersion + ", which will destroy all old data");
107 db.execSQL("DROP TABLE IF EXISTS friends_info");
108 onCreate(db);
109 }// end onUpgrade()
110
111 }// end DatabaseHelper
112
113 public InfoDBAdapter open() throws SQLException
114 {
115 db = DBHelper.getWritableDatabase();
116 return this;
117 }// end open()
118
119 public void close()
120 {
121 DBHelper.close();
122 }// end close()
123
124 public long insertContact(String name, String date, String type, String likes, String dislikes)
125 {
126 ContentValues initialValues = new ContentValues();
127 initialValues.put(KEY_NAME, name);
128 initialValues.put(KEY_DATE, date);
129 initialValues.put(KEY_TYPE, type);
130 initialValues.put(KEY_LIKES, likes);
131 initialValues.put(KEY_DISLIKES, dislikes);
132 return db.insert(DATABASE_TABLE, null, initialValues);
133 }// end insertContact()
134
135 public boolean deleteContact(long rowId)
136 {
137 return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
138 }// end deleteContact()
139
140 public Cursor getAllContacts()
141 {
142 return db.query(DATABASE_TABLE, new String[]
143 { KEY_ROWID, KEY_NAME, KEY_DATE, KEY_TYPE, KEY_LIKES, KEY_DISLIKES }, null, null, null, null, null);
144 }// end getAllContacts()
145
146 public Cursor getContact(long rowId) throws SQLException
147 {
148 Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
149 KEY_ROWID, KEY_NAME, KEY_DATE, KEY_TYPE, KEY_LIKES, KEY_DISLIKES }, KEY_ROWID + "=" + rowId,
150 null, null, null, null, null);
151 if (mCursor != null)
152 {
153 mCursor.moveToFirst();
154 }
155 return mCursor;
156 }// end getContact()
157
158 public boolean updateContact(long rowId, String name, String date, String type, String likes, String dislikes)
159 {
160 ContentValues args = new ContentValues();
161 args.put(KEY_NAME, name);
162 args.put(KEY_DATE, date);
163 args.put(KEY_TYPE, type);
164 args.put(KEY_LIKES, likes);
165 args.put(KEY_DISLIKES, dislikes);
166 return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
167 }// end updateContact()
168
169infoDB = new InfoDBAdapter(mContext);
170infoDB.open();
171Cursor c = infoDB.getAllContacts();