没有找到我的消息来源

时间:2012-06-27 18:55:44

标签: android eclipse

好的,所以我想让我的应用程序在我的手机上工作,看它是否有效。我注意到我想拨打电话的按钮没有做任何事情。这是代码:

public boolean onStart(Bundle savedInstanceState) {
View callButton2 = null;
callButton2.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {
         try {
             Intent i = new Intent(Intent.ACTION_CALL);
             String p = "tel:" + getString(R.string.phoneNumber);
             i.setData(Uri.parse(p));
             startActivity(i);
         } catch (ActivityNotFoundException activityException) {
             Log.e("Calling a Phone Number", "Call failed", activityException);}
         finally{}
     }

我将权限放在Manifest文件中,但它仍然不起作用。所以我正在调查并发现我的所有来源都没有找到。这会严重破坏我的应用程序,还是无关紧要?另外,我如何让他们回来?

2 个答案:

答案 0 :(得分:2)

你从这里调用了这个函数“onStart(Bundle savedInstanceState)”

public boolean onStart(Bundle savedInstanceState) {

 View callButton2 = null;
 callButton2.setOnClickListener(new OnClickListener() { // <---

这一行会引发NPE错误。

因此,当您的应用运行时,我们无法调用此功能public boolean onStart(Bundle savedInstanceState)

答案 1 :(得分:1)

方法onStart()应为

public void onStart()
{
    super.onStart();
    ...
}

由于该方法不正确,Android在Activity Lifecycle期间根本不会调用它。尝试修复它,然后将OnClickListener放入其中。

编辑:此外,最好在Views而非onCreate()初始化onStart()

就像Dheeresh Singh所说,你也会因NullPointerException而崩溃,因为你将Button指定为空。您首先需要通过调用Button或在代码中创建它来将其分配给布局中的findViewById()。现在你实际上是在调用null.setOnClickListener(),这没有任何意义。