Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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/195.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 SQLite数据显示achartengine线图_Java_Android_Compiler Errors_Achartengine - Fatal编程技术网

Java 无法使用android SQLite数据显示achartengine线图

Java 无法使用android SQLite数据显示achartengine线图,java,android,compiler-errors,achartengine,Java,Android,Compiler Errors,Achartengine,数据库文件如下: //The code below displays the database/table name, and the version number of the database. private static final String DATABASE_NAME = "gameScoresDB"; private static final String DATABASE_TABLE = "LS"; private static final int DATABASE_VERSI

数据库文件如下:

//The code below displays the database/table name, and the version number of the database.
private static final String DATABASE_NAME = "gameScoresDB";
private static final String DATABASE_TABLE = "LS";
private static final int DATABASE_VERSION = 1;

private DBHelp ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;

public class DBHelp extends SQLiteOpenHelper {

    public DBHelp(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                KEY_LEVEL + " TEXT NOT NULL, " +
                KEY_SCORE + " TEXT NOT NULL, " +
                KEY_MOVES + " TEXT NOT NULL, " +
                KEY_TIME_COMPLETED + " TEXT NOT NULL, " +
                KEY_INCORRECT_BUTTONS_PRESSED + " TEXT NOT NULL, " +
                KEY_LSHAKE + " TEXT NOT NULL, " +
                KEY_MSHAKE + " TEXT NOT NULL, " +
                KEY_HSHAKE + " TEXT NOT NULL, " +
                KEY_ASOUND + " TEXT NOT NULL, " +
                KEY_MSOUND + " TEXT NOT NULL, " +
                KEY_TIME_STAMP + " TEXT NOT NULL);"                 
                );
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
        onCreate(db);
    }
}

public DBG_handler(Context c){
    ourContext = c;
}

public DBG_handler open() throws SQLException{
    ourHelper = new DBHelp(ourContext);
    ourDatabase = ourHelper.getWritableDatabase();
    return this;
}

public void close(){
    ourHelper.close();
}

public long createEntry(String sql_LevelName, String sql_score, String sql_numberMoves, String sql_timeCompleted, 
                        String sql_incorrectButtons, String sql_lShake, String sql_mShake, String sql_hShake,
                        String sql_aSound, String sql_mSound, String sql_tStamp) {
    ContentValues cv = new ContentValues();
    cv.put(KEY_LEVEL, sql_LevelName);
    cv.put(KEY_SCORE, sql_score);
    cv.put(KEY_MOVES, sql_numberMoves);
    cv.put(KEY_TIME_COMPLETED, sql_timeCompleted);
    cv.put(KEY_INCORRECT_BUTTONS_PRESSED, sql_incorrectButtons);
    cv.put(KEY_LSHAKE, sql_lShake);
    cv.put(KEY_MSHAKE, sql_mShake);
    cv.put(KEY_HSHAKE, sql_hShake);
    cv.put(KEY_ASOUND, sql_aSound);
    cv.put(KEY_MSOUND, sql_mSound);
    cv.put(KEY_TIME_STAMP, sql_tStamp);
    return ourDatabase.insert(DATABASE_TABLE, null, cv);    
}

public String getData() {
    // TODO Auto-generated method stub
    String[] columns = new String[] {KEY_ROWID, KEY_LEVEL, KEY_SCORE, KEY_MOVES, KEY_TIME_COMPLETED, KEY_INCORRECT_BUTTONS_PRESSED, 
                                     KEY_LSHAKE, KEY_MSHAKE, KEY_HSHAKE, KEY_ASOUND, KEY_MSOUND, KEY_TIME_STAMP};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iRow = c.getColumnIndex(KEY_ROWID);
    int iLevel = c.getColumnIndex(KEY_LEVEL);
    int iScore = c.getColumnIndex(KEY_SCORE);
    int iMoves = c.getColumnIndex(KEY_MOVES);
    int iTC = c.getColumnIndex(KEY_TIME_COMPLETED);
    int iIBP = c.getColumnIndex(KEY_INCORRECT_BUTTONS_PRESSED);
    int ilShake = c.getColumnIndex(KEY_LSHAKE);
    int imShake = c.getColumnIndex(KEY_MSHAKE);
    int ihShake = c.getColumnIndex(KEY_HSHAKE);
    int iaSound = c.getColumnIndex(KEY_ASOUND);
    int imSound = c.getColumnIndex(KEY_MSOUND);
    int itStamp = c.getColumnIndex(KEY_TIME_STAMP);

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result = result + c.getString(iRow) + ", Level: " + c.getString(iLevel) + ", Score: " + c.getString(iScore)
                        + " , Moves: "+ c.getString(iMoves) + " , Time Completed: " + c.getString(iTC) + " , Incorrect Buttons: " + c.getString(iIBP) 
                        + " , Light Shakes: " + c.getString(ilShake) + " , Medium Shakes: " + c.getString(imShake) + ", Hard Shakes: " + c.getString(ihShake) 
                        + " , Average Sound: " + c.getString(iaSound) + " , Max Sound: " + c.getString(imSound) + " , Time: " + c.getString(itStamp) + "\n";
    }
    return result;
}


public int[] getaSound() {
    String[] columns = new String[] {KEY_ASOUND};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    int[] result = new int[] {};
    int iaSound = c.getColumnIndex(KEY_ASOUND);

    for(int i = 0; i < c.getCount(); i++){
        result[i] = Integer.parseInt(c.getString(iaSound));
    }
    return result;
}

public String getmSound() {
    String[] columns = new String[] {KEY_MSOUND};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    String result = "";
    int imSound = c.getColumnIndex(KEY_MSOUND);

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result = result + c.getString(imSound);
    }
    return result;
}   


public XYSeries getDemoDataset() {
    String[] columns = new String[] {KEY_ASOUND};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);

    XYSeries x = new XYSeries("X Series");
    int iaSound = c.getColumnIndex(KEY_ASOUND);
    int j [] = {};

    for(int i = 0 ; i <  c.getCount(); i++){
        int i1 = Integer.parseInt(c.getString(iaSound));
        x.add(j[i], i1);
    }
    return x;
}

public Intent getIntent() {
    XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset();
    dataset.addSeries(getDemoDataset());

    XYSeriesRenderer Xrenderer=new XYSeriesRenderer();
    Xrenderer.setColor(Color.GREEN);
    Xrenderer.setPointStyle(PointStyle.DIAMOND);
    Xrenderer.setDisplayChartValues(true);
    Xrenderer.setLineWidth(2);
    Xrenderer.setFillPoints(true);

    XYMultipleSeriesRenderer mRenderer=new XYMultipleSeriesRenderer();
    mRenderer.setChartTitle("X Vs Y Chart");
    mRenderer.setXTitle("X Values");
    mRenderer.setYTitle("Y Values");
    mRenderer.setZoomButtonsVisible(true);
    mRenderer.setXLabels(0);
    mRenderer.setPanEnabled(false);
    mRenderer.setShowGrid(true);
    mRenderer.setClickEnabled(true);

    mRenderer.addSeriesRenderer(Xrenderer);

    Intent intent = ChartFactory.getLineChartIntent(ourContext, dataset, mRenderer, "hello");
    return intent;      
}
}

错误日志:

  08-09 19:30:52.284: D/AndroidRuntime(27648): Shutting down VM
08-09 19:30:52.284: W/dalvikvm(27648): threadid=1: thread exiting with uncaught exception (group=0x41d79ba8)
08-09 19:30:52.284: E/AndroidRuntime(27648): FATAL EXCEPTION: main
08-09 19:30:52.284: E/AndroidRuntime(27648): Process: com.example.diss, PID: 27648
08-09 19:30:52.284: E/AndroidRuntime(27648): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.DBG_handler.getDemoDataset(DBG_handler.java:176)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.DBG_handler.getIntent(DBG_handler.java:184)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.Score$1.onClick(Score.java:51)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.view.View.performClick(View.java:4438)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.view.View$PerformClick.run(View.java:18422)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Handler.handleCallback(Handler.java:733)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Handler.dispatchMessage(Handler.java:95)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Looper.loop(Looper.java:136)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.app.ActivityThread.main(ActivityThread.java:5001)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at java.lang.reflect.Method.invokeNative(Native Method)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at java.lang.reflect.Method.invoke(Method.java:515)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at dalvik.system.NativeStart.main(Native Method)
08-09 19:35:52.354: I/Process(27648): Sending signal. PID: 27648 SIG: 9
08-09 19:35:52.714: D/libEGL(27825): loaded /system/lib/egl/libEGL_tegra.so
08-09 19:35:52.734: D/libEGL(27825): loaded /system/lib/egl/libGLESv1_CM_tegra.so
08-09 19:35:52.744: D/libEGL(27825): loaded /system/lib/egl/libGLESv2_tegra.so
08-09 19:35:52.774: D/OpenGLRenderer(27825): Enabling debug mode 0
08-09 19:35:52.824: W/IInputConnectionWrapper(27825): showStatusIcon on inactive InputConnection

I am new to programming using achartengine, so I'm just wondering why this the graph is not actually opening.

AbstractCursor.java在哪里?我没有一个叫做AbstractCursorok的类,你可以点击并指出哪一行是错误的吗?eclipse中没有显示错误,当运行项目时,一旦我试图打开图表,应用程序崩溃,这会打印在日志cat上。基本上我猜,这是一个数据库错误,而不是一个软件,只是试着注释一个软件并打印你的数据库输出,这可能会给你一个清晰的想法
  08-09 19:30:52.284: D/AndroidRuntime(27648): Shutting down VM
08-09 19:30:52.284: W/dalvikvm(27648): threadid=1: thread exiting with uncaught exception (group=0x41d79ba8)
08-09 19:30:52.284: E/AndroidRuntime(27648): FATAL EXCEPTION: main
08-09 19:30:52.284: E/AndroidRuntime(27648): Process: com.example.diss, PID: 27648
08-09 19:30:52.284: E/AndroidRuntime(27648): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.DBG_handler.getDemoDataset(DBG_handler.java:176)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.DBG_handler.getIntent(DBG_handler.java:184)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.example.diss.Score$1.onClick(Score.java:51)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.view.View.performClick(View.java:4438)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.view.View$PerformClick.run(View.java:18422)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Handler.handleCallback(Handler.java:733)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Handler.dispatchMessage(Handler.java:95)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.os.Looper.loop(Looper.java:136)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at android.app.ActivityThread.main(ActivityThread.java:5001)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at java.lang.reflect.Method.invokeNative(Native Method)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at java.lang.reflect.Method.invoke(Method.java:515)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
08-09 19:30:52.284: E/AndroidRuntime(27648):    at dalvik.system.NativeStart.main(Native Method)
08-09 19:35:52.354: I/Process(27648): Sending signal. PID: 27648 SIG: 9
08-09 19:35:52.714: D/libEGL(27825): loaded /system/lib/egl/libEGL_tegra.so
08-09 19:35:52.734: D/libEGL(27825): loaded /system/lib/egl/libGLESv1_CM_tegra.so
08-09 19:35:52.744: D/libEGL(27825): loaded /system/lib/egl/libGLESv2_tegra.so
08-09 19:35:52.774: D/OpenGLRenderer(27825): Enabling debug mode 0
08-09 19:35:52.824: W/IInputConnectionWrapper(27825): showStatusIcon on inactive InputConnection

I am new to programming using achartengine, so I'm just wondering why this the graph is not actually opening.