简体   繁体   English

Android ActionBar不可见

[英]Android ActionBar not visible

I've updated the API 21, tools and extras up to date, the ActionBar in some projects has gone invisible. 我已经更新了API 21,工具和附加功能,一些项目中的ActionBar变得不可见。 I did this following code, but app crashes showing NullPointerException. 我在下面的代码中做了这个,但app崩溃显示NullPointerException。

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

Logcat Output 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.access$800(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):FATAL EXCEPTION:main 02-23 18:03:36.269:E / AndroidRuntime(3327):进程:com.example.twaapp,PID:3327 02-23 18:03:36.269:E / AndroidRuntime(3327):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.twaapp / com.example.twaapp.MainActivity}:java.lang.NullPointerException 02-23 18: 03:36.269:E / AndroidRuntime(3327):在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):在android.app.ActivityThread.access $ 800(ActivityThread.java:139)02-23 18:03:36.269:E / AndroidRuntime(3327):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1210)02-23 18:03:36.269:E / AndroidRuntime(3327):在android.os.Handler.dispatchMessage(Handler.java) :102)02-23 18:03:36.269:E / AndroidRuntime(3327):在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.Instrumentatio 02-23 18:03:36.269:E / AndroidRuntime(3327):在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):引起: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):在android.app.Activity.performCreate(Activity.java:5248)02-23 18:03:36.269:E / AndroidRuntime(3327):at android .app.Instrumentatio n.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 n.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个

How to make AB visible? 如何让AB可见?

Your Activity class should extend like this: 您的Activity类应该像这样扩展:

public class MainActivity extends ActionBarActivity{

    ....

}

instead of 代替

public class MainActivity extends FragmentActivity{

    ....

}

Also, you need to call 此外,你需要打电话

ActionBar = getSupportActionBar();

instead of 代替

ActionBar = getActionBar();

Try this. 尝试这个。 This will work. 这会奏效。

Make sure that your activity extends the ActionBarActivity . 确保您的活动扩展了ActionBarActivity Like this: MainActivity extends ActionBarActivity . 像这样: MainActivity extends ActionBarActivity I found that when I remove this and extend something else that the action bar would disappear. 我发现当我删除它并扩展其他操作栏会消失的东西时。 Also check the theme of the xml and change it. 还要检查xml的主题并进行更改。

Check this out: 看一下这个:

can I use a compatible action bar AND a fragment in the same activity? 我可以在同一个活动中使用兼容的操作栏和片段吗?

如果您正在使用Activity类,那么您的最小SDK应该更大,以显示操作栏。否则在Android支持库中使用ActionbarActivity使您的应用向后兼容并使用getSupportActionBar()来获取操作栏实例

Since ActionBarActivity is deprecated, AppCompatActivity should be used. 由于不推荐使用ActionBarActivity ,因此应使用AppCompatActivity As- 如-

public class LoginActivity extends AppCompatActivity{

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM