奇怪的NullpointerException android.content.ComponentName
我有这行代码,这里有一个NullPointerException 第219行Search.java 意向意向=新意向((上下文)actionBar,SearchResultsMap.class) 例外情况奇怪的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
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);
}
}