2012-10-03 22 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(); 
     } 
    } 
} 
相关问题