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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
#1

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

09.09.2012, 20:49. Просмотров 1629. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста найти ошибку в коде. Когда работаю с проектом вроде всё нормально компилируется, а запускаю .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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 20:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приложение собирающее показания с акселерометра в SQlite базу (Программирование Android):

Не работает приложение с использованием акселерометра - Программирование Android
Пытаюсь написать приложение, в котором по экрану будет двигаться какой то объект в зависимости от наклона смартфона. Насколько я понял, у...

Сохранение текста из Spinner а в базу SQLite - Программирование Android
Уважаемые гуру, прошу помощи. Имеется несколько данные (массив) в Spinner е и кнопка. При нажатии кнопки данные из Spinnera должны...

Как подключить готовую базу Sqlite на проект - Программирование Android
Привет друзья. Я учусь программировать под андроид и много чего прочитал с интернета все равно там непонятно. То есть у кого нибудь есть...

Экспорт БД SQLite в приложение - Программирование Android
Здравствуйте, вот думаю о написании дипломной работы, и заранее хотел бы узнать насколько труден и тернист процесс экспорта бд(с...

Есть ли какое-нибудь приложение (IDE) писать запросы к SQLite базе устройства? - Программирование Android
Знаю 2 способа посмотреть что лежит в файле базы данных sqlite приложения: Вытащить файл через Android Device Monitor и открыть...

Программирование с использованием акселерометра - Программирование Android
Доброго времени суток, пытался найти какую-либо информацию о том, как писать приложения при участии акселерометра, но не смог найти ничего...

7
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.09.2012, 21:02 #2
покажите полный лог ошибки
0
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
09.09.2012, 23:33  [ТС] #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
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.09.2012, 23:52 #4
это у вас где такое выскочило?

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

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

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

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

Добавлено через 46 секунд
MassivN действительно не используется.
0
rfiz
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 22
10.09.2012, 21:54  [ТС] #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!



Незнаю даже что делать!
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.09.2012, 22:05 #8
ем, ну тогда не исправляй и
Цитата Сообщение от rfiz Посмотреть сообщение
Please execute 'adb uninstall com.dimond.acc' in a shell.
Добавлено через 1 минуту
для не знающих английский и не умеющих пользоваться гугл транслейтом перевожу - откройте команд лайн, скопируйте 'adb uninstall com.dimond.acc' и нажмите ентер.
0
10.09.2012, 22:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2012, 22:05
Привет! Вот еще темы с ответами:

Добавить свою базу вопросов с ответами в готовое приложение для тестирования - Программирование Android
Ребят , есть приложение для тестирования, обычное , для тестов на психологию. Нужно в него добавить свою базу вопросов с ответами. Как это...

Отключение акселерометра для одного приложения - Программирование Android
Добрый вечер! Написала свою первую прогу для Андроид. При наклоне телефона горизонтально прога тоже наклоняется. Подскажите, пожалуйста,...

Система координат акселерометра планшета и телефона - Программирование Android
Всех с наступающим!!! Была задача, простая до скрежета зубов: импортирую import android.hardware.SensorEvent; далее просто...

Перевод в земную систему координат. Спроецировать ускорения акселерометра на ось силы тяжести - Программирование Android
Доброго времени суток, товарищи Дано: показания акселерометра по 3 осям и показания системы ориентации телефона (в градусах). ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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