Форум программистов, компьютерный форум CyberForum.ru

Приложение собирающее показания с акселерометра в SQlite базу - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
09.09.2012, 20:49     Приложение собирающее показания с акселерометра в SQlite базу #1
Помогите пожалуйста найти ошибку в коде. Когда работаю с проектом вроде всё нормально компилируется, а запускаю .apk файл пишется ошибка "При синтаксическом анализе пакета возникли неполадки".
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.dimond.acc;
 
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.database.sqlite.SQLiteDatabase;
 
public class acc extends Activity implements SensorListener {
 
  public class AXYZTdata
  {
    float ax;
    float ay;
    float az;
    long time;    
    public AXYZTdata(float in_ax, float in_ay, float in_az, long in_time)
    {
      ax = in_ax;
      ay = in_ay;
      az = in_az;
      time = in_time;
    }
  }  
  SensorManager sm = null;
  final String tag = "logging";
  private EditText MassivN;
  TextView DataText;
  String TimeNowtmp;
  int N, sec, stroka=0;
  AXYZTdata[] mass = new AXYZTdata[10000];
  float acc_x, acc_y, acc_z, acc_time = 0;
  SQLiteDatabase mDatabase = SQLiteDatabase.openOrCreateDatabase("/mnt/sdcard/DB/"+String.valueOf(System.currentTimeMillis())+".db", null);
  int onoff=0;  
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    sm = (SensorManager) getSystemService(SENSOR_SERVICE);
    Button start = (Button) findViewById(R.id.Start);
    Button stop = (Button) findViewById(R.id.Stop);
    Button write = (Button) findViewById(R.id.Write);
    DataText = (TextView) findViewById(R.id.data);
    //строка создания баы данных
    String DATABASE_CREATE =
      "create table accdb" +
      "(_id integer primary key autoincrement, " +
           "acc_x text not null," +
           "acc_y text not null," +
           "acc_z text not null," +
           "time_h_m_s text not null);";    
    mDatabase.execSQL(DATABASE_CREATE);    
    //подпись на событие нажатия на Старт
    start.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) 
          {
            startwrite();
          }
        });
    //подпись на событие нажатия на Стоп   
    stop.setOnClickListener(new OnClickListener() {
      public void onClick(View arg0) 
          {
            stopwrite();
          }
        });
    //подпись на событие нажатия на Запись   
    write.setOnClickListener(new OnClickListener() {
      public void onClick(View arg0) 
          {
            masstosql();
            DataText.setText("Writed!!!");
          }
        });    
  }
  
 
  public void startwrite()
  {
    onoff=1;
    return;
  }
  public void stopwrite()
  {
    onoff=0;
    DataText.setText(String.valueOf(stroka));
    return;
  }
  public void masstosql()
  {
    long StartTime = mass[0].time;
    for(int i=0; i<stroka; i++)
    {
      mDatabase.execSQL(String.format("INSERT INTO accdb (acc_x, acc_y, acc_z, time_h_m_s) VALUES ('%s','%s','%s','%s');", 
          mass[i].ax, mass[i].ay, mass[i].az, mass[i].time-StartTime));
    }
    return;
  }
  
  public void onSensorChanged(int sensor, float[] values) {
    synchronized (this) {
      Log.d(tag, "onSensorChanged: " + sensor + ", x: " + values[0] + ", y: " + values[1] + ", z: " + values[2]);
      if (sensor == SensorManager.SENSOR_ACCELEROMETER && onoff==1) {
        AXYZTdata tmp;
        tmp = new AXYZTdata(values[0], values[1],values[2], System.currentTimeMillis());
        mass[stroka] = tmp;
        stroka++;
      }      
    }
  }
  public void onAccuracyChanged(int sensor, int accuracy) {
    Log.d(tag,"onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);
  }
  @Override
  protected void onResume() {
    super.onResume();
    sm.registerListener(this, SensorManager.SENSOR_ACCELEROMETER, SensorManager.SENSOR_DELAY_FASTEST);
  }
  
  @Override
  protected void onStop() {
    sm.unregisterListener(this);
    super.onStop();
  }  
  
  
}
Проект приложения:https://docs.google.com/file/d/0B6mJ...it?hl=en&pli=1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 20:49     Приложение собирающее показания с акселерометра в SQlite базу
Посмотрите здесь:

Программирование с использованием акселерометра Android
Сохранение текста из Spinner а в базу SQLite Android
Android Экспорт БД SQLite в приложение
Отключение акселерометра для одного приложения Android
Android Перевод в земную систему координат. Спроецировать ускорения акселерометра на ось силы тяжести
Система координат акселерометра планшета и телефона Android
Добавить свою базу вопросов с ответами в готовое приложение для тестирования Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.09.2012, 21:02     Приложение собирающее показания с акселерометра в SQlite базу #2
покажите полный лог ошибки
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
09.09.2012, 23:33  [ТС]     Приложение собирающее показания с акселерометра в SQlite базу #3
Description
The import android.os.Environment is never used line 12 Java Problem
The import android.os.SystemClock is never used line 13 Java Problem
The import java.io.File is never used line 3 Java Problem
The import java.text.SimpleDateFormat is never used line 4 Java Problem
The import java.util.Calendar is never used line 5 Java Problem
The import java.util.Timer is never used line 6 Java Problem
The import java.util.TimerTask is never used line 7 Java Problem
The type SensorListener is deprecated line 9 Java Problem
The type SensorListener is deprecated line 22 Java Problem
The value of the field acc.MassivN is not used line 40 Java Problem
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.09.2012, 23:52     Приложение собирающее показания с акселерометра в SQlite базу #4
это у вас где такое выскочило?

Добавлено через 40 секунд
на варнинги какие то похожи...
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
10.09.2012, 01:37  [ТС]     Приложение собирающее показания с акселерометра в SQlite базу #5
Да, это действительно предупреждения, они выскочили во вкладке "Problems" в Eclipse. Вроде там написано, что метод SensorListener - deprecated и некоторые методы не используются. Хотя вроде всё используется! Хоть это и предупреждения, а приложение всё равно не работает.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.09.2012, 01:58     Приложение собирающее показания с акселерометра в SQlite базу #6
предупреждения не могут быть причиной не работы приложения.
что именно не работает? как не работает? как вы определили что оно не работает?

ожидал логов екзепшена...

Добавлено через 4 минуты
что бы избавиться от import is never used, нажмите Ctrl+Shift+O

Добавлено через 2 минуты
Цитата Сообщение от документация Посмотреть сообщение
SensorListener
This interface is deprecated.
Use SensorEventListener instead.
............

Добавлено через 46 секунд
MassivN действительно не используется.
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
10.09.2012, 21:54  [ТС]     Приложение собирающее показания с акселерометра в SQlite базу #7
Если код, в соответствии с Вашими указаниями не исправить, то при эмуляции прописывается:
[2012-09-10 19:44:44 - acc] ------------------------------
[2012-09-10 19:44:44 - acc] Android Launch!
[2012-09-10 19:44:44 - acc] adb is running normally.
[2012-09-10 19:44:44 - acc] Performing com.dimond.acc.acc activity launch
[2012-09-10 19:44:44 - acc] Automatic Target Mode: launching new emulator with compatible AVD '123'
[2012-09-10 19:44:44 - acc] Launching a new emulator with Virtual Device '123'
[2012-09-10 19:44:58 - acc] New emulator found: emulator-5554
[2012-09-10 19:44:58 - acc] Waiting for HOME ('android.process.acore') to be launched...
[2012-09-10 19:48:04 - acc] HOME is up on device 'emulator-5554'
[2012-09-10 19:48:04 - acc] Uploading acc.apk onto device 'emulator-5554'
[2012-09-10 19:48:05 - acc] Installing acc.apk...
[2012-09-10 19:51:27 - acc] Re-installation failed due to different application signatures.
[2012-09-10 19:51:27 - acc] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-09-10 19:51:27 - acc] Please execute 'adb uninstall com.dimond.acc' in a shell.
[2012-09-10 19:51:28 - acc] Launch canceled!


А если не исправлять, то получается:

[2012-09-10 19:18:07 - acc] ------------------------------
[2012-09-10 19:18:07 - acc] Android Launch!
[2012-09-10 19:18:07 - acc] adb is running normally.
[2012-09-10 19:18:07 - acc] Performing com.dimond.acc.acc activity launch
[2012-09-10 19:18:07 - acc] Automatic Target Mode: launching new emulator with compatible AVD '123'
[2012-09-10 19:18:07 - acc] Launching a new emulator with Virtual Device '123'
[2012-09-10 19:18:32 - acc] New emulator found: emulator-5554
[2012-09-10 19:18:32 - acc] Waiting for HOME ('android.process.acore') to be launched...
[2012-09-10 19:21:48 - acc] HOME is up on device 'emulator-5554'
[2012-09-10 19:21:48 - acc] Uploading acc.apk onto device 'emulator-5555'
[2012-09-10 19:21:49 - acc] Installing acc.apk...
[2012-09-10 19:25:04 - acc] Failed to install acc.apk on device 'emulator-5554!
[2012-09-10 19:25:04 - acc] (null)
[2012-09-10 19:25:04 - acc] Launch canceled!



Незнаю даже что делать!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2012, 22:05     Приложение собирающее показания с акселерометра в SQlite базу
Еще ссылки по теме:

Android Не работает приложение с использованием акселерометра
Android Создание активити с отображением элементов по показания компаса и координат
Android SQLite
SQLite Android
Как подключить готовую базу Sqlite на проект Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.09.2012, 22:05     Приложение собирающее показания с акселерометра в SQlite базу #8
ем, ну тогда не исправляй и
Цитата Сообщение от rfiz Посмотреть сообщение
Please execute 'adb uninstall com.dimond.acc' in a shell.
Добавлено через 1 минуту
для не знающих английский и не умеющих пользоваться гугл транслейтом перевожу - откройте команд лайн, скопируйте 'adb uninstall com.dimond.acc' и нажмите ентер.
Yandex
Объявления
10.09.2012, 22:05     Приложение собирающее показания с акселерометра в SQlite базу
Ответ Создать тему
Опции темы

Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru