2013-04-07 52 views
0

我正在開發手機上的應用程序AIDE上的Android應用程序。它是一個非常有用的工具。但是,當AIDE說沒有錯誤,我安裝我的應用程序並運行它時,我得到一個提示:「不幸的是,(應用程序名稱在這裏)已停止。」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 2013-04-07 15:56:26

+0

這不一定專用於AIDE,但Java IDE通常會指示私有字段未初始化。我相信Eclipse給出了一個錯誤,但這些檢查僅僅是爲了方便。實際上,調試崩潰的原因應該是開發的一部分,你至少應該熟悉使用Logcat。 – 2013-04-07 16:01:26

+0

你應該明白,構建你的應用程序沒有錯誤並不意味着在運行時沒有錯誤,因爲直到你修復了前者,你才能得到後者。例如'x = 1; y = 0; z = x/y;'會編譯得很好,但會在運行時導致錯誤。如果沒有logcat堆棧跟蹤,很難猜測你的情況發生了什麼。 – Simon 2013-04-07 16:03:01

回答

4

您沒有初始化您的textView變量。所以當你在做text.setText("null")時,它會拋出一個NullPointerException並停止你的應用程序。

初始化您的textView並重試啓動它。

+0

謝謝!我其實錯過了。現在文本起作用了,但陀螺儀沒有。 – Hullu2000 2013-04-07 18:42:35