Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio-SQL数据库/表未创建-应用程序赢得';t打开_Java_Android_Sqlite_Android Emulator - Fatal编程技术网

Java Android Studio-SQL数据库/表未创建-应用程序赢得';t打开

Java Android Studio-SQL数据库/表未创建-应用程序赢得';t打开,java,android,sqlite,android-emulator,Java,Android,Sqlite,Android Emulator,但是,正在Android Studio中创建SQL数据库时,该应用程序不会在emulator上打开,并且在使用设备监视器时,在/data/data/package/databases/处找不到任何数据库文件 我正在开发api_21模拟器,我相信它应该支持sqlite。最终,我将使用数据库信息来执行按钮的各种功能,但到目前为止,这些都被忽略了 请帮忙 MainActivity.java package edu.tamu.thecaddyapp; import android.os.Bundle;

但是,正在Android Studio中创建SQL数据库时,该应用程序不会在emulator上打开,并且在使用设备监视器时,在/data/data/package/databases/处找不到任何数据库文件

我正在开发api_21模拟器,我相信它应该支持sqlite。最终,我将使用数据库信息来执行按钮的各种功能,但到目前为止,这些都被忽略了

请帮忙

MainActivity.java

package edu.tamu.thecaddyapp;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

Button buttonDriver, buttonFouriron, buttonFiveiron, buttonSixiron, buttonSeveniron, buttonEightiron, buttonNineiron, buttonPW, buttonFiftysix, buttonSW, buttonSixty;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SQLiteHelper db = new SQLiteHelper(this);
    db.getWritableDatabase();

    buttonDriver = findViewById(R.id.button_DRIVER);
    buttonFouriron = findViewById(R.id.button_4IRON);
    buttonFiveiron = findViewById(R.id.button_5IRON);
    buttonSixiron = findViewById(R.id.button_6IRON);
    buttonSeveniron = findViewById(R.id.button_7IRON);
    buttonEightiron = findViewById(R.id.button_8IRON);
    buttonNineiron = findViewById(R.id.button_9IRON);
    buttonPW = findViewById(R.id.button_PW);
    buttonSW = findViewById(R.id.button_SW);
    buttonFiftysix = findViewById(R.id.button_56DEG);
    buttonSixty = findViewById(R.id.button_60DEG);

}

public void buttonDriver(View view) {
}

public void buttonFouriron(View view) {
}

public void buttonFiveiron(View view) {
}

public void buttonSixiron(View view) {
}

public void buttonSeveniron(View view) {
}

public void buttonEightiron(View view) {
}

public void buttonNineiron(View view) {
}

public void buttonPW(View view) {
}

public void buttonSW(View view) {
}

public void buttonFiftysix(View view) {
}

public void buttonSixty(View view) {
}

}
SQLiteHelper.java

package edu.tamu.thecaddyapp;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SQLiteHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "SQLiteDatabase.db";
public static final String TABLE_NAME = "golf_averages";
public static final String _id = "_id";
public static final String COL_1 = "COL_1";
public static final String COL_2 = "COL_2";
public static final String COL_3 = "COL_3";
public static final String COL_4 = "COL_4";
public static final String COL_5 = "COL_5";
public static final String COL_6 = "COL_6";
public static final String COL_7 = "COL_7";
public static final String COL_8 = "COL_8";
public static final String COL_9 = "COL_9";
public static final String COL_10 = "COL_10";

public String create_table = "CREATE TABLE" + TABLE_NAME
        + " (_id integer primary key autoincrement, "
        + COL_1 + "text, "
        + COL_2 + "text, "
        + COL_3 + "text, "
        + COL_4 + "text, "
        + COL_5 + "text, "
        + COL_6 + "text, "
        + COL_7 + "text, "
        + COL_8 + "text, "
        + COL_9 + "text, "
        + COL_10 + "text" +")";


public SQLiteHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    Log.d("SQLiteHelper", "Context Reached");
}


@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    sqLiteDatabase.execSQL(create_table);
    Log.d("onCreate", "onCreate reached");
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    sqLiteDatabase.execSQL("DROP TABLE IF EXISTS golf_averages");
    onCreate(sqLiteDatabase);
}
}

您必须在SQL语句中添加空格。您有以下几行:

+ COL_9 + "text, "
但是
COL_9
被定义为:

public static final String COL_9 = "COL_9";
这意味着SQL语句在编译时以COL_9和文本连接在名称中,这意味着行名称是
COL_9text

在您编写
文本之前添加一个空格,它将修复它。问题不在第一篇文章中(使用ID),它似乎只针对文本列

此外,在SQL语句的开头也会出现同样的问题:

"CREATE TABLE" + TABLE_NAME
在单词
后添加空格


发现这种情况的最简单方法是在logcat中查找错误。这将显示SQL语法错误发生的位置,并有助于缩小所需的更改范围。

您必须在SQL语句中添加空格。您有以下几行:

+ COL_9 + "text, "
但是
COL_9
被定义为:

public static final String COL_9 = "COL_9";
这意味着SQL语句在编译时以COL_9和文本连接在名称中,这意味着行名称是
COL_9text

在您编写
文本之前添加一个空格,它将修复它。问题不在第一篇文章中(使用ID),它似乎只针对文本列

此外,在SQL语句的开头也会出现同样的问题:

"CREATE TABLE" + TABLE_NAME
在单词
后添加空格


发现这种情况的最简单方法是在logcat中查找错误。这将显示SQL语法错误发生的位置,并有助于缩小所需的更改范围。

请在查询中添加适当的间距

public String create_table = "CREATE TABLE " + TABLE_NAME
    + " (_id integer primary key autoincrement, "
    + COL_1 + " text, "
    + COL_2 + " text, "
    + COL_3 + " text, "
    + COL_4 + " text, "
    + COL_5 + " text, "
    + COL_6 + " text, "
    + COL_7 + " text, "
    + COL_8 + " text, "
    + COL_9 + " text, "
    + COL_10 + " text" +")";

间距在SQL查询中非常重要

请在查询中添加适当的间距

public String create_table = "CREATE TABLE " + TABLE_NAME
    + " (_id integer primary key autoincrement, "
    + COL_1 + " text, "
    + COL_2 + " text, "
    + COL_3 + " text, "
    + COL_4 + " text, "
    + COL_5 + " text, "
    + COL_6 + " text, "
    + COL_7 + " text, "
    + COL_8 + " text, "
    + COL_9 + " text, "
    + COL_10 + " text" +")";

间距在SQL查询中非常重要space@IntelliJAmiya这是多余的间距,没有任何效果。问题在于空格,是的,但它在SQL语句的后面。用户遇到了空格问题。在
创建表之后需要空格
关键字:
“创建表”“+TABLE_NAME
.db文件现在正在创建,但仍然没有表
+”(\u id
添加space@IntelliJAmiya这是多余的间距,没有任何效果。问题在于空格,是的,但它在SQL语句的后面。用户遇到了空格问题。
创建表后需要的空格
关键字:
“创建表"+TABLE_NAME
.db文件现在正在创建,但是仍然没有TABLE谢谢,.db文件现在正在创建,但是仍然没有TABLE删除应用程序数据,然后重试。由于您之前尝试过,数据库应该存在,但是onCreate不会再次调用,因此它不会创建表。上次调用它时使用了错误的SQL语句应用程序崩溃,但数据库仍应创建。不过,我没有调用getWritableDatabase()但是,谢谢!谢谢,.db文件现在正在创建,但是仍然没有表。请删除应用程序数据并重试。由于您之前尝试过,数据库应该存在,但onCreate不会再次调用,因此它不会创建表。上次调用时,错误的SQL语句使应用程序崩溃,但仍应创建数据库。neveRmin,我还没有调用getWritableDatabase(),谢谢!