当前位置: 首页 > 知识库问答 >
问题:

创建数据库不起作用Android/Android Studio[重复]

闾丘冠玉
2023-03-14

刚刚开始使用android并尝试创建简单的数据库。

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");

}

}

以下是我得到的错误:1:42:56 PM无法绑定到本地8600用于调试器1:42:56 PM建立的连接被主机中的软件java.io.ioException:主机中的软件在sun.nio.ch.socketdispatcher.write0(本机方法)在sun.nio.ch.socketdispatcher.write(Socketdispatcher.java:51)在sun.nio.ch.ioutil.writeFromNativeBuffer(ioutil.java:93)在OID.DDMLIB.DeviceMonitor.ProcessIncomingJDWPData(DeviceMoni...(显示气球)

共有1个答案

韶亮
2023-03-14

此错误与sqlite无关,甚至与您的应用程序无关。

尝试重新启动Android Studio、adb服务器、重新启用设备中的USB调试,或相关主题中的一些内容(如果没有帮助)Eclipse DDMS错误“无法绑定到本地8600进行调试器”(can't bindd to local 8600 for debugger)

 类似资料:
  • 是否有用于创建数据库的模拟? 背景:我正在编写一个脚本来在未知系统上自动设置PostgreSQL中的模式。我不确定数据库(甚至是模式的一部分)是否已经部署,所以如果某些结构已经存在,我想将我的代码结构为不会失败(或者理想情况下甚至显示错误)。我想将阻止我创建数据库的错误(因此中止未来的模式更改,因为它们不起作用)与此错误区分开来。

  • 我在我的本地应用程序中创建目录。它在Android5.0中工作得很好,但在Android6.0中(Marshmallow)有些时候它工作了,有些时候不工作。我使用下面的代码来创建新的目录。我在目录中保存视频和图像文件。

  • 由于某些原因,我的位图创建不起作用。我找到一只虫子了吗?当我尝试使用矩阵创建一个新位图时,它说我的宽度和高度必须大于0,这毫无意义。 我知道这看起来好像我没有做过任何研究,我做过,但这没有意义。我已经尝试了很多事情,包括将新宽度和新宽度更改为常量,但它仍然不起作用。如果有帮助的话,这是堆栈跟踪 我正在尝试制作一个旋转门户。我想有一个矩阵平移,旋转和缩放,但我没有得到工作。我决定把译文拿出来,只是做

  • 问题内容: 嗨,我在Android中创建sqlite数据库时遇到了一些问题。 在模拟器上一切正常,我可以创建数据库。但这在实际的机器上不起作用。当我尝试在手机上调试应用程序时,它只是无法创建数据库。 谁能告诉我发生了什么事?我需要在清单文件中添加任何特殊权限吗?我已经尝试过ACCESS_CHECKIN_PROPERTIES或WRITE_EXTERNAL_STORAGE,但是仍然无法获取数据库。 顺

  • 我试图创建一些切入点和之前的建议为存储库,以便能够在Spring启动的Spring数据中过滤一些存储库的实体管理器。我在项目中也有Web和服务层,AounLogging适用于两者。但是我不能为存储库做同样的事情。我已经挣扎了2天,我尝试了很多东西来修复它。我几乎阅读了关于此的每个文档、问题和线程(代理问题CGlib和JDK代理等)。我使用jhipster创建项目。 除了@Pointcut和Crud

  • 通过Daos.migration实现表结构自动修改 在MainSetup.init方法内, Daos.createTableInPackage之后添加: Daos.migration(dao, User.class, true, false, false);