Android 操作栏不可见

Android ActionBar not visible

我已经更新了 API21、工具和附加功能,一些项目中的 ActionBar 已经不可见了。我执行了以下代码,但应用程序崩溃并显示 NullPointerException。

ActionBar actionBar = getActionBar();
actionBar.show();

Logcat输出

02-23 18:03:36.269: E/AndroidRuntime(3327): FATAL EXCEPTION: main 02-23 18:03:36.269: E/AndroidRuntime(3327): Process: com.example.twaapp, PID: 3327 02-23 18:03:36.269: E/AndroidRuntime(3327): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.twaapp/com.example.twaapp.MainActivity}: java.lang.NullPointerException 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread.access0(ActivityThread.java:139) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.os.Handler.dispatchMessage(Handler.java:102) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.os.Looper.loop(Looper.java:136) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread.main(ActivityThread.java:5086) 02-23 18:03:36.269: E/AndroidRuntime(3327): at java.lang.reflect.Method.invokeNative(Native Method) 02-23 18:03:36.269: E/AndroidRuntime(3327): at java.lang.reflect.Method.invoke(Method.java:515) 02-23 18:03:36.269: E/AndroidRuntime(3327): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 02-23 18:03:36.269: E/AndroidRuntime(3327): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 02-23 18:03:36.269: E/AndroidRuntime(3327): at dalvik.system.NativeStart.main(Native Method) 02-23 18:03:36.269: E/AndroidRuntime(3327): Caused by: java.lang.NullPointerException 02-23 18:03:36.269: E/AndroidRuntime(3327): at com.example.twaapp.MainActivity.onCreate(MainActivity.java:82) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.Activity.performCreate(Activity.java:5248) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110) 02-23 18:03:36.269: E/AndroidRuntime(3327): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162) 02-23 18:03:36.269: E/AndroidRuntime(3327): ... 11 more

如何让AB可见?

确保您的 activity 扩展了 ActionBarActivity。像这样:MainActivity extends ActionBarActivity。我发现当我删除它并扩展其他内容时,操作栏会消失。还要检查 xml 的主题并更改它。

看看这个:

can I use a compatible action bar AND a fragment in the same activity?

如果您使用 Activity class 那么您的最小 SDK 应该大于 tahn 13 以显示操作 bar.Otherwise 在 [=13= 中使用 ActionbarActivity ] 支持库使您的应用程序向后兼容并使用 getSupportActionBar() 获取操作栏实例

您的 Activity class 应该像这样扩展:

public class MainActivity extends ActionBarActivity{

    ....

}

而不是

public class MainActivity extends FragmentActivity{

    ....

}

此外,您需要致电

ActionBar = getSupportActionBar();

而不是

ActionBar = getActionBar();

试试这个。这会起作用。

由于 ActionBarActivity 已弃用,因此应使用 AppCompatActivity。作为-

public class LoginActivity extends AppCompatActivity{

}