나는 웹과 stackoverflow 검색했지만 내가 원하는 해결책을 찾을 수 없습니다. 내 응용 프로그램에서 나는 가속도계 좌표 값을 데이터베이스에 기록한 다음 사용자가 버튼을 클릭하면 파일에 기록하고이 좌표 값에 대한 일부 기능을 생성합니다 (예 : 표준 편차, 평균, 최대, 최소 등). 주어진 시간 간격으로) 마지막으로이 기능을 파일에 씁니다. 그러나 필자가 이러한 기능을 생성하여 파일에 기록하려고 시도했을 때 충돌이 발생하여이를 제거했습니다.안드로이드 커서 충돌
Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 1 columns.
FATAL EXCEPTION: main
java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetDouble(Native Method)
at android.database.CursorWindow.getDouble(CursorWindow.java:543)
at android.database.CursorWindow.getFloat(CursorWindow.java:594)
at android.database.AbstractWindowedCursor.getFloat(AbstractWindowedCursor.java:81)
at com.example.coordinates.MainActivity.generateFeatures(MainActivity.java:259)
at com.example.coordinates.MainActivity.dosyayaYaz(MainActivity.java:239)
at com.example.coordinates.MainActivity.onDialogPositiveClick(MainActivity.java:668)
at com.example.coordinates.dialogFragement$1.onClick(dialogFragement.java:54)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)
여기는 오류가 발생하는 곳입니다.
private void generateFeatures(String label){
boolean bitti=false;
Cursor firstTimeHandler=db.rawQuery("SELECT MIN(zaman) FROM Koordinatlar", null);
firstTimeHandler.moveToFirst();
float firstTime= firstTimeHandler.getFloat(firstTimeHandler.getColumnIndex("zaman"));
float nextTime=firstTime+3000;
Cursor lastTimeHandler=db.rawQuery("SELECT MAX(zaman) FROM Koordinatlar", null);
lastTimeHandler.moveToFirst();
float lastTime=lastTimeHandler.getFloat(firstTimeHandler.getColumnIndex("zaman"));
while(!bitti){
calculateAverage(firstTime,nextTime);
calculateStandartDev(firstTime,nextTime);
calculateAverageAbsoluteDifferance(firstTime,nextTime);
calculateAverageResultant(firstTime,nextTime);
calculateMax(firstTime,nextTime);
firstTime=nextTime;
nextTime=nextTime+3000;
if(nextTime>=lastTime){
nextTime=lastTime;
calculateAverage(firstTime,nextTime);
calculateStandartDev(firstTime,nextTime);
calculateAverageAbsoluteDifferance(firstTime,nextTime);
calculateAverageResultant(firstTime,nextTime);
calculateMax(firstTime,nextTime);
bitti=true;
}
}
dosyayaYaz2(label);
}
(자만)이 그에 아무 문제가 까다로운 없기 때문에 . – metzelder