-1

さて、私はこれらの突然のエラーに本当に腹を立てています。それは本当に私が前にそれらを経験したことがない. logcat で実行すると、行にエラーが表示されますが、なぜエラーが発生するのかわかりません!

完全な画像は次のとおりです。

有効な 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 で原因不明のエラーがさらに発生します。

4

2 に答える 2

1

例外がスローされる理由は、次の行が原因です。

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

アプリケーションによってアクティビティのonCreate()メソッドが呼び出される前に呼び出すことはできません。括弧を見ると、呼び出しがonCreate()メソッドの外部にあるため、オブジェクトのインスタンス化中に実行されることがわかります。TelephonyManagerが内部に作成されるように括弧を修正しますonCreate()

言い換えると:

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(); 
        }  
    } 
} 
于 2012-10-03T04:15:14.880 に答える
1

許可を宣言しましたか

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

マニフェスト ファイル内

于 2012-10-03T03:54:13.813 に答える