2012-10-03 24 views
-1

好的,所以我真的很生氣,因爲這些突然的錯誤即將通過。它只是我以前從未體驗過它們。我在logcat中運行,它顯示了錯誤,但我不知道爲什麼它給出了一個錯誤!
爲什麼錯誤?顯示的調試和代碼 - 在模擬器中運行

以下是完整的圖像:

Valid XHTML

下面是代碼:

public class MainActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    { 
     TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
     if("000000000000000".equals(tm.getDeviceId())) { 
      Toast.makeText(this, "Emulator Worked", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(this, "Emulator Failed", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

任何人都可以請大家指出,即時通訊沒有看到這個問題?如果我使用「嘗試」,我只會在Eclipse中出現更多無法解釋的錯誤。

+0

你應該有周圍的'TelephonyManager'部分一組額外的括號?這看起來不像在'onCreate'方法中運行。 – compuguru

回答

1

你有沒有在清單文件中聲明的許可

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

+0

是的,我這樣做,並添加了更多的非必需的權限只是爲了確保 –

1

你得到拋出的異常的原因是因爲該行

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 

不能活動的onCreate()方法之前被調用被你的應用程序調用。如果你看看你的括號,你會看到這個調用不在onCreate()方法中,因此在對象實例化過程中運行。更正括號,以便在onCreate()內創建TelephonyManager

換句話說:

public class MainActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
     if("000000000000000".equals(tm.getDeviceId())) { 
      Toast.makeText(this, "Emulator Worked", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(this, "Emulator Failed", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 
相關問題