Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
奇怪的NullpointerException android.content.ComponentName_Android_Android Activity - Fatal编程技术网

奇怪的NullpointerException android.content.ComponentName

奇怪的NullpointerException android.content.ComponentName,android,android-activity,Android,Android Activity,我有这行代码,这里有一个NullPointerException 第219行Search.java 意向意向=新意向((上下文)actionBar,SearchResultsMap.class) 例外情况 04-25 17:30:00.485: W/System.err(6518): java.lang.NullPointerException 04-25 17:30:00.501: W/System.err(6518): at android.content.ComponentName

我有这行代码,这里有一个NullPointerException

第219行Search.java

意向意向=新意向((上下文)actionBar,SearchResultsMap.class)

例外情况

04-25 17:30:00.485: W/System.err(6518): java.lang.NullPointerException
04-25 17:30:00.501: W/System.err(6518):     at android.content.ComponentName.<init>(ComponentName.java:75)
04-25 17:30:00.501: W/System.err(6518):     at android.content.Intent.<init>(Intent.java:2823)
04-25 17:30:00.501: W/System.err(6518):     at com.itaxeeta.server.Search.onPostExecute(Search.java:219)
搜索类

 public Search(IActionBar actionBar, GeoPoint source, GeoPoint destination) {
    super(actionBar);
    this.source = source;
    this.destination = destination;
}

public interface IActionBar {
    public void setBusyVisibility(int visibility) ;
    public void setSubscribedToCount() ;
    public void setCurrentAddress(String address) ;
    public void setSubscribedToDetails(CustomJourneyUserInformation[] result);
    public Context getContext() ;
}

ActionBar
不能转换为
上下文
,更重要的是,在实例化
意图时,它似乎是
null
。如果此代码在
活动中执行
,只需将
作为第一个参数传递即可。

使用

Intent intent = new Intent(getApplicationContext(), SearchResultsMap.class)

而不是

Intent intent = new Intent((Context) actionBar, SearchResultsMap.class)

如果要在AsyncTask中使用Intent,请使用以下代码

public class Search extends AsyncTask<Main, Void, Main> {  
      @Override
        protected Main doInBackground(Main... params) { 
             return params[0]; 
       }
     protected void onPostExecute(Main params) { 
    // TODO Auto-generated method stub
         Intent intent = new Intent(params,SearchResultsMap.class); 
         startActivity(intent);
    }
    }
公共类搜索扩展了异步任务{
@凌驾
受保护的主doInBackground(主…参数){
返回参数[0];
}
受保护的void onPostExecute(主参数){
//TODO自动生成的方法存根
意向意向=新意向(params,SearchResultsMap.class);
星触觉(意向);
}
}
我也有同样的例外。 就我而言,这是因为当我运行以下代码时: 意向意向=新意向(活动,MyActivity.class) 活动已完成。那么它是空的


希望对其他人有所帮助。

为清晰起见,添加了更多代码。抱歉,应该在之前添加它。您的\u ClassName。这提供了
在范围内无法访问主屏幕类型的封闭实例
然后提供您的\u ClassName.classI然后获取
构造函数意图(类,类)未定义
您是否扩展了搜索类中的活动类这就是我所做的,在主屏幕中,我实现了IActionBar(它有getContext()),然后我调用了
newsearch(这个、源、目标)。在搜索(异步任务)中,我传递actionBar。应该有用的。事实上,我很少有例外。
Intent intent = new Intent(Your_ClassName.this, SearchResultsMap.class)
Intent intent = new Intent((Context) actionBar, SearchResultsMap.class)
public class Search extends AsyncTask<Main, Void, Main> {  
      @Override
        protected Main doInBackground(Main... params) { 
             return params[0]; 
       }
     protected void onPostExecute(Main params) { 
    // TODO Auto-generated method stub
         Intent intent = new Intent(params,SearchResultsMap.class); 
         startActivity(intent);
    }
    }