为什么错误?调试和代码显示 - 在模拟器中运行

时间:2012-10-03 03:50:04

标签: java android android-emulator

好的,所以我真的对这些突然发生的错误感到生气。它真的我从来没有经历过它们。我在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();
        } 
    }
}

任何人都可以指出我未能看到的问题?如果我使用“try”,我只会在Eclipse中弹出更多无法解释的错误。

2 个答案:

答案 0 :(得分:1)

您是否已宣布许可

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
清单文件中的

答案 1 :(得分: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(); 
        }  
    } 
}