gerade erst mit Android begonnen und versucht, einfache Datenbank zu erstellen.Erstellen von Datenbank funktioniert nicht Android/Android Studio
Hier ist mein Code:
FoodMacrosTable.java
public class FoodMacrosTable {
public static final String DB_NAME = "FoodDatabase.db";
public static final int DB_VERSION = 1;
public class FoodMacros implements BaseColumns {
public static final String TABLE_NAME = "FoodMacros";
public static final String FOOD_NAME = "Food name";
public static final String FOOD_PROTEIN = "Amount of protein in 100g";
public static final String FOOD_CARBS = "Amount of carbs in 100g";
public static final String FOOD_FATS = "Amount of fats in 100g";
public static final String FOOD_CALORIES = "Amount of calories in 100g";
public static final String FOOD_VIT_A = "% of daily needs in 100g";
public final String[] TABLE_COLUMNS = {FOOD_NAME,FOOD_PROTEIN,FOOD_CARBS,FOOD_FATS,FOOD_CALORIES,
FOOD_VIT_A};
}
}
HealthyDbHanbler.java
public class HealthyDbHandler extends SQLiteOpenHelper {
public HealthyDbHandler(Context context){
super(context,FoodMacrosTable.DB_NAME,null,FoodMacrosTable.DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String createTable = "CREATE TABLE " + FoodMacrosTable.FoodMacros.TABLE_NAME + " (" +
FoodMacrosTable.FoodMacros._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
FoodMacrosTable.FoodMacros.FOOD_NAME + " TEXT NOT NULL, " +
FoodMacrosTable.FoodMacros.FOOD_PROTEIN + " TEXT NOT NULL, " +
FoodMacrosTable.FoodMacros.FOOD_CARBS + " TEXT NOT NULL, " +
FoodMacrosTable.FoodMacros.FOOD_FATS + " TEXT NOT NULL, " +
FoodMacrosTable.FoodMacros.FOOD_CALORIES + " TEXT NOT NULL, " +
FoodMacrosTable.FoodMacros.FOOD_VIT_A + " TEXT NOT NULL);";
sqLiteDatabase.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + FoodMacrosTable.FoodMacros.TABLE_NAME);
onCreate(sqLiteDatabase);
}
public void addFood(Food food){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(FoodMacrosTable.FoodMacros.FOOD_NAME,food.getFOOD_NAME());
values.put(FoodMacrosTable.FoodMacros.FOOD_PROTEIN,food.getFOOD_PROTEIN());
values.put(FoodMacrosTable.FoodMacros.FOOD_CARBS,food.getFOOD_CARBS());
values.put(FoodMacrosTable.FoodMacros.FOOD_FATS,food.getFOOD_FATS());
values.put(FoodMacrosTable.FoodMacros.FOOD_CALORIES,food.getFOOD_CALORIES());
values.put(FoodMacrosTable.FoodMacros.FOOD_VIT_A,food.getFOOD_VIT_A());
db.insert(FoodMacrosTable.FoodMacros.TABLE_NAME,null,values);
db.close();
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HealthyDbHandler db = new HealthyDbHandler(this) ;
Log.v("DBINFO","Database created");
}
}
Hier ist der Fehler, den ich bekommen: 01.42.56 PM Kann nicht binden an lokalen 8600 für Debugger 1:42:56 PM Eine eingerichtete Verbindung wurde von der Software in Ihrem Host-Rechner abgebrochen java.io.IOException: Eine bestehende Verbindung wurde von der Software in Ihrem Host-Rechner bei sun.nio.ch abgebrochen .SocketDispatcher.write0 (Native Methode) bei sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:51) bei sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) bei sun.nio. ch.IOUtil.write (IOUtil.java:65) bei sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:471) bei com.android.ddmlib.JdwpPacket.write (JdwpPacket.java:179) bei com.android.ddmlib.Client.send (Client.java:654) bei com.android.ddmlib.jdwp.JdwpAgent.send (JdwpAgent.java:9 2) bei com.android.ddmlib.HandleHeap.sendREAQ (HandleHeap.java:349) bei com.android.ddmlib.Client.requestAllocationStatus (Client.java:517) bei com.android.ddmlib.DeviceMonitor.createClient (DeviceMonitor.java:573) bei com.android.ddmlib.DeviceMonitor.openClient (DeviceMonitor.java:545) bei com.android.ddmlib.DeviceMonitor.processIncomingJdwpData (DeviceMoni ... (Show Ballon)
Ich empfehle, bevor die DB zu schaffen (mit SQLite-Tool) und den Einsatz von Es als Asset in Ihrer App. Viel einfacher. –
Werde dies als nächstes versuchen, aber zuerst lernen wollen, wie es geht –
Der Fehler sagt Android Studio kann nicht einmal Ihre App starten. Der Debugger funktioniert nicht. –