2013-04-07 2 views
0

Я разрабатываю приложения для Android на своем телефоне, в приложении AIDE. Это очень полезный инструмент. Но когда AIDE говорит, что ошибок нет, и я устанавливаю свое приложение и запускаю его, я получаю promt: «К сожалению, (имя приложения здесь) остановлено».Проблемы с приложениями AIDE

Я не знаю причины, но это происходит, когда приложение использует гироскоп или имеет переменную Display или что-то в этом роде. Иногда это происходит без причины.

AIDE говорит, что этот код в порядке, но он не работает.

package com.test.gyro; 

import android.app.*; 
import android.hardware.Sensor; 
import android.hardware.SensorEvent; 
import android.hardware.SensorEventListener; 
import android.hardware.SensorManager; 
import android.os.*; 
import android.widget.*; 

public class MainActivity extends Activity implements SensorEventListener 
{ 
    private SensorManager SM; 
    private Sensor gyro; 
    private TextView text; 

    @Override 
    public void onCreate(Bundle SIS) 
    { 
     super.onCreate(SIS); 
     SM = (SensorManager) this.getSystemService(SENSOR_SERVICE); 
     gyro = SM.getDefaultSensor(Sensor.TYPE_GYROSCOPE); 
     text.setText("null"); 
     setContentView(text); 
    } 

    public void onSensorChanged(SensorEvent e) 
    { 
     String m=e.values[0] + ", " + e.values[1] + ", " + e.values[2]; 
     text.setText(m); 
     text.invalidate(); 
    } 

    public void onAccuracyChanged(Sensor S, int a) 
    { 
    } 
} 
+0

Можем ли мы увидеть ваш манифест? Возможно, вы не добавили правильные разрешения. – MowDownJoe

+0

Это не обязательно относится к AIDE, но Java IDE обычно указывает, что частное поле не было инициализировано. Я считаю, что Eclipse дает ошибку, но эти проверки просто для удобства. Фактически отладка причины вашего сбоя должна быть частью разработки, и вы должны, по крайней мере, познакомиться с использованием Logcat. –

+0

Вы должны понимать, что ошибки, возникающие при создании вашего приложения, не означают ошибок во время выполнения, поскольку вы не можете получить последнее, пока не исправите первое. например 'x = 1; y = 0; z = x/y;' будет компилироваться просто отлично, но приведет к ошибке во время выполнения. Без трассировки стека logcat трудно догадаться, что происходит в вашем случае. – Simon

ответ

4

Вы не инициализировали переменную textView. Поэтому, когда вы делаете text.setText("null"), он бросает NullPointerException и останавливает ваше приложение.

Инициализируйте свой textView и повторите попытку, чтобы запустить его.

+0

Спасибо! Я действительно пропустил это. Теперь текст работает, но гироскоп этого не делает. – Hullu2000

Смежные вопросы