Ich versuche gerade, Daten aus meiner Datenbank anzuzeigen, die ich gerade erstellt habe. Aber wenn ich versuche, es in meinem Telefon zu starten, hört es immer auf. Dies ist mein CodeDie App wurde gestoppt, während versucht wurde, Daten aus der Datenbank anzuzeigen. Android Studio
Benutzer bearbeiten Screen.java
TextView textView;
String text = " ";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_users);
// added
textView = (TextView) findViewById(R.id.textView);
DatabaseHelper db = new DatabaseHelper(this);
// inserting users
db.addUsers(new Users("1", "Julian", "[email protected]", "seguiran"));
// reading and displaying all users (you can remove it on where it should be placed
List<Users> users = db.getAllUsers();
for (Users u : users)
{
String log = "ID number:" + u.getIDnumber() + "Name:" + u.getName() +
"Email:" + u.getEmail() + "Password:" + u.getPassword();
text = text + log;
}
textView.setText(text);
}
DatabaseHelper.java
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_USERS_TABLE = "CREATE TABLE" + TABLE_USERS + "("
+ KEY_IDNUMBER + "INTEGER PRIMARY KEY," + KEY_NAME + "TEXT,"
+ KEY_EMAIL + "TEXT," + KEY_PASSWORD + "TEXT," + ")";
db.execSQL(CREATE_USERS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + TABLE_USERS);
onCreate(db);
}
void addUsers (Users users) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("KEY_NAME", users.getName());
values.put("KEY_EMAIL", users.getEmail());
values.put("KEY_PASSWORD", users.getPassword());
db.insert(TABLE_USERS, null, values);
db.close();
}
Users getUsers (int idnumber) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.query(TABLE_USERS, new String[] {KEY_IDNUMBER, KEY_NAME, KEY_EMAIL, KEY_PASSWORD}, KEY_IDNUMBER
+ "=?", new String[] {String.valueOf(idnumber)}, null, null, null, null);
if (cursor != null){
cursor.moveToFirst();
}
Users users = new Users (Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), cursor.getString(3));
return users;
}
public List<Users> getAllUsers(){
List<Users> usersList = new ArrayList<>();
String selectQuery ="SELECT * FROM " + TABLE_USERS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Users users = new Users();
users.setIDnumber(Integer.parseInt(cursor.getString(0)));
users.setName(cursor.getString(1));
users.setEmail(cursor.getString(2));
users.setPassword(cursor.getString(3));
usersList.add(users);
} while (cursor.moveToNext());
}
return usersList;
}
public int updateUsers (Users users) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("KEY_NAME", users.getName());
values.put("KEY_EMAIL", users.getEmail());
values.put("KEY_PASSWORD", users.getPassword());
return db.update(TABLE_USERS, values, KEY_IDNUMBER + "=?",
new String[]{String.valueOf(users.getIDnumber())});
}
public void deleteUsers (Users users) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_USERS, KEY_IDNUMBER + "=?",
new String[]{String.valueOf(users.getIDnumber())});
db.close();
}
public int getUsersCount() {
String countQuery = "SELECT * FROM " + TABLE_USERS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();
return cursor.getCount();
}
Users.java
public class Users
{
int IDnumber;
String Name;
String Email;
String Password;
public Users(int i, String string, String cursorString, String s) {
this.Name = Name;
this.Email = Email;
this.Password = Password;
}
public Users() {
}
public Users(String s, String julian, String cursorString, String seguiran) {
}
public int getIDnumber() {
return IDnumber;
}
public void setIDnumber(int IDnumber) {
this.IDnumber = IDnumber;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
}
Logcat
4-03 12:14:14.591 2418-2418/com.example.aadre.saferhomeph V/FA: onActivityCreated
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph E/SQLiteLog: (1) near "TABLEusers": syntax error
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph D/AndroidRuntime: Shutting down VM
04-03 12:14:14.651 2418-2418/com.example.aadre.saferhomeph W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41d85c08)
04-03 12:14:14.671 2418-2418/com.example.aadre.saferhomeph E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aadre.saferhomeph, PID: 2418
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aadre.saferhomeph/com.example.aadre.saferhomeph.Edit_Users_Screen}: android.database.sqlite.SQLiteException: near "TABLEusers": syntax error (code 1): , while compiling: CREATE TABLEusers(idnumber INTEGER PRIMARY KEY, nameTEXT, email TEXT, password TEXT)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
at android.app.ActivityThread.access$900(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5511)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: near "TABLEusers": syntax error (code 1): , while compiling: CREATE TABLEusers(idnumber INTEGER PRIMARY KEY, nameTEXT, email TEXT, password TEXT)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:690)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1806)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1737)
at com.example.aadre.saferhomeph.DatabaseHelper.onCreate(DatabaseHelper.java:38)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
at com.example.aadre.saferhomeph.DatabaseHelper.addUsers(DatabaseHelper.java:50)
at com.example.aadre.saferhomeph.Edit_Users_Screen.onCreate(Edit_Users_Screen.java:33)
at android.app.Activity.performCreate(Activity.java:5322)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
at android.app.ActivityThread.access$900(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5511)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: message received msg=2, ext1=0, ext2=0
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: playback complete
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: callback application
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: back from callback
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: message received msg=7, ext1=0, ext2=0
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: unrecognized message: (7, 0, 0)
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: callback application
04-03 12:14:14.791 2418-2430/com.example.aadre.saferhomeph V/MediaPlayer: back from callback
04-03 12:14:19.561 2418-2456/com.example.aadre.saferhomeph W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
pls help
[Leider hat MyApp gestoppt. Wie kann ich das lösen?] (Http://stackoverflow.com/q/23353173/5221149) – Andreas
Mögliche Duplikate von [Leider hat MyApp aufgehört. Wie kann ich das lösen?] (Http://stackoverflow.com/questions/23353173/unidymy-myapp-has-stopped-how-cani-solve-this) – Manu