Android ActionBarSherlock选项卡空点异常

Android ActionBarSherlock选项卡空点异常,android,nullpointerexception,actionbarsherlock,Android,Nullpointerexception,Actionbarsherlock,我有两种方法: private void openPrivate(String target) { currentKeyWindows = target; Log.i("better","openPrivate "+ target); if (windows.containsKey(currentKeyWindows)) { } else { tw = createTextView(currentKeyWindows); Acti

我有两种方法:

private void openPrivate(String target) {
    currentKeyWindows = target;
    Log.i("better","openPrivate "+ target);
    if (windows.containsKey(currentKeyWindows)) {
    } else {
        tw = createTextView(currentKeyWindows);

        ActionBar.Tab newTab = getSupportActionBar().newTab();
        newTab.setText(currentKeyWindows);
        newTab.setTabListener(MainActivity.this);

        getSupportActionBar().addTab(newTab, true);
    }
}

private void jointochannel(String target) {
    currentKeyWindows = "#" + target;
    Log.i("better","jointochannel "+ target);
    if (windows.containsKey(currentKeyWindows)) {
    } else {
        tw = createTextView(currentKeyWindows);
        listofnicks.put(currentKeyWindows, new ArrayList<String>());
        nicklistadapter = new ArrayAdapter<String>(this, R.xml.mylistview, listofnicks.get(currentKeyWindows));
        nicklist.setAdapter(nicklistadapter);

                registerForContextMenu(nicklist);  


        ActionBar.Tab newTab = getSupportActionBar().newTab();
        newTab.setText(currentKeyWindows);
        newTab.setTabListener(MainActivity.this);

        getSupportActionBar().addTab(newTab, true);
        irc.addCommand(new Command(Command.JOIN_TO_CHANNEL, "JOIN " + currentKeyWindows));
    }
            channel = currentKeyWindows;
}
My AndroidManifest.xml:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
onTabSelected(选项卡,碎片事务ft):

public void onTabSelected(选项卡,碎片事务ft)
{
currentKeyWindows=tab.getText().toString();
mScrollView.removeallview();
mScrollView.addView(this.windows.get(this.currentKeyWindows));
scrollToBottom();
nicklistadapter=newarrayadapter(这个,R.xml.mylistview,listofnicks.get(currentKeyWindows));
nicklist.setAdapter(nicklistadapter);
registerForContextMenu(nicklist);
通道=当前键窗口;
}

从您的日志猫判断,您传递给适配器的数组似乎是
null

nicklistadapter = new ArrayAdapter<String>(this, R.xml.mylistview, listofnicks.get(currentKeyWindows));
nicklistadapter=newarrayadapter(这个,R.xml.mylistview,listofnicks.get(currentKeyWindows));

我将验证
listofnicks.get(currentKeyWindows)
是否返回有效结果。

您确定显示的行是NPE吗?因为ActionBar.Tab newTab=getSupportActionBar().newTab();不NPE,因此getSupportActionBar不能为null,newTab.setText(currentKeyWindows)不能为空;不NPE,所以newTab不能为null。在那条线上没有留下任何可以导致NPE的东西!不幸的是,我敢肯定。如果你注释掉这一行,程序运行良好。然后请发布完整的logcat堆栈跟踪。看起来它在
onTabSelected()之后崩溃了。
请发布这段代码。ru.startandroid.develop.MainActivity.onTabSelected(MainActivity.java:427)是崩溃,而不是你发布的那一行。我想给你一个加号,但不幸的是,我没有权利:(@sam.如果我费心看你的个人资料看到了13.8K,我会把它揭出来;@Denis你可以点击复选标记表示这个问题已经解决了(我们可以通过复选标记和向上投票获得分数)。@Simon我“分享”了奖励,我在你回答的最后一个问题“影子文本”上达到了顶峰,并认为它值得投一票
11-04 17:06:57.241: E/AndroidRuntime(4696): FATAL EXCEPTION: main
11-04 17:06:57.241: E/AndroidRuntime(4696): java.lang.NullPointerException
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:291)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.widget.ListView.setAdapter(ListView.java:454)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at ru.startandroid.develop.MainActivity.onTabSelected(MainActivity.java:427)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.actionbarsherlock.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:526)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.actionbarsherlock.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:452)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at ru.startandroid.develop.MainActivity.openPrivate(MainActivity.java:382)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at ru.startandroid.develop.MainActivity.onContextItemSelected(MainActivity.java:100)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.app.Activity.onMenuItemSelected(Activity.java:2209)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2785)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:137)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:873)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.widget.ListView.performItemClick(ListView.java:3513)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.os.Handler.handleCallback(Handler.java:587)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.os.Looper.loop(Looper.java:130)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at java.lang.reflect.Method.invokeNative(Native Method)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at java.lang.reflect.Method.invoke(Method.java:507)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-04 17:06:57.241: E/AndroidRuntime(4696):     at dalvik.system.NativeStart.main(Native Method)
    public void onTabSelected(Tab tab, FragmentTransaction ft)
{
    currentKeyWindows = tab.getText().toString();

    mScrollView.removeAllViews();
    mScrollView.addView(this.windows.get(this.currentKeyWindows));
    scrollToBottom();


    nicklistadapter = new ArrayAdapter<String>(this, R.xml.mylistview, listofnicks.get(currentKeyWindows));
    nicklist.setAdapter(nicklistadapter);

    registerForContextMenu(nicklist);  
    channel=currentKeyWindows;

}
nicklistadapter = new ArrayAdapter<String>(this, R.xml.mylistview, listofnicks.get(currentKeyWindows));