【发布时间】:2015-04-25 17:17:56
【问题描述】:
对不起我的英语。我有 TabActivity,我想创建自定义操作栏,但出现此错误:
04-25 20:11:17.777: E/AndroidRuntime(8083): java.lang.RuntimeException:无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.MainActivity}: java.lang.RuntimeException:无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.News}: java.lang.NullPointerException
主活动:
public class MainActivity extends TabActivity {
TabHost tabHost;
ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = getTabHost();
setTabs();
}
private void setTabs()
{
addTab("", R.drawable.tab_news, News.class);
addTab("", R.drawable.tab_servises, News.class);
addTab("", R.drawable.tab_profile, News.class);
addTab("", R.drawable.tab_contacts, News.class);
}
private void addTab(String labelId, int drawableId, Class<?> c)
{
Intent intent = new Intent(this, c);
TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
TextView title = (TextView) tabIndicator.findViewById(R.id.title);
title.setText(labelId);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);
spec.setIndicator(tabIndicator);
spec.setContent(intent);
tabHost.addTab(spec);
}
}
新闻
public class News extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_n);
ActionBar mActionBar = getActionBar();
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
}
}
UPD
全日志猫
04-25 20:33:15.186:E/AndroidRuntime(12242):致命异常:主要 04-25 20:33:15.186: E/AndroidRuntime(12242): java.lang.RuntimeException:无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.MainActivity}: java.lang.RuntimeException:无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.News}: java.lang.NullPointerException 04-25 20:33:15.186: E/AndroidRuntime(12242):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2077) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.ActivityThread.access$600(ActivityThread.java:134) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.os.Handler.dispatchMessage(Handler.java:99) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.os.Looper.loop(Looper.java:154) 04-25 20:33:15.186: E/AndroidRuntime(12242):在 android.app.ActivityThread.main(ActivityThread.java:4624) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 java.lang.reflect.Method.invokeNative(Native Method) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 java.lang.reflect.Method.invoke(Method.java:511) 04-25 20:33:15.186: E/AndroidRuntime(12242):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 dalvik.system.NativeStart.main(本机方法)04-25 20:33:15.186: E/AndroidRuntime(12242):原因:java.lang.RuntimeException:无法 开始活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.News}: java.lang.NullPointerException 04-25 20:33:15.186: E/AndroidRuntime(12242):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2077) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.ActivityThread.startActivityNow(ActivityThread.java:1917) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.widget.TabHost.setCurrentTab(TabHost.java:346) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.widget.TabHost.addTab(TabHost.java:236) 04-25 20:33:15.186: E/AndroidRuntime(12242):在 com.example.bonsitelazyl.MainActivity.addTab(MainActivity.java:47) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 com.example.bonsitelazyl.MainActivity.setTabs(MainActivity.java:29) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 com.example.bonsitelazyl.MainActivity.onCreate(MainActivity.java:24) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.Activity.performCreate(Activity.java:4479) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041) 04-25 20:33:15.186: E/AndroidRuntime(12242): ... 11 更多 04-25 20:33:15.186: E/AndroidRuntime(12242): 由: java.lang.NullPointerException 04-25 20:33:15.186: E/AndroidRuntime(12242):在 com.example.bonsitelazyl.News.onCreate(News.java:15) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.app.Activity.performCreate(Activity.java:4479) 04-25 20:33:15.186:E/AndroidRuntime(12242):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 04-25 20:33:15.186: E/AndroidRuntime(12242): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041)
UPD:
getActionBar 返回 null
更新:
我在新的更新中尝试了 android.support.v7.app.ActionBarActivity,我添加了这个代码:
getSupportActionBar().setDisplayShowCustomEnabled(true);
View customNav = LayoutInflater.from(this).inflate(R.layout.custom_actionbar, null);
getSupportActionBar().setCustomView(customNav);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setCustomView(customNav);
04-25 21:09:09.550: E/AndroidRuntime(22075): java.lang.RuntimeException: 无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.MainActivity}: java.lang.RuntimeException:无法启动活动 组件信息{com.example.bonsitelazyl/com.example.bonsitelazyl.News}: java.lang.NullPointerException
【问题讨论】:
-
发布你的完整日志猫。
-
@Pooja 我更新问题
-
尝试扩展android.support.v7.app.ActionBarActivity而不是Activity
-
@GiorgosOikonomou 我有空指针异常。我更新问题
标签: java android nullpointerexception