android标题栏空指针异常
android title bar null pointer exception
我知道这很简单,但我无法修复 it.Tried 来自 SOF.com 的许多解决方案,但 none 有效。我正在尝试显示 activity 的标题并抛出 NPE。 testing.Below 使用 API19 的代码是:
在activity中:
public class DisplayImageActivity extends RootActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().setTitle("Image Preview");
在清单中:
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".DisplayImageActivity"
android:label="< app name >"
android:screenOrientation="portrait" >
</activity>
在style.xml中:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
最后,logcat 说:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kittu.<> /com.example.kittu.<>.DisplayImageActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2334)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.access0(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.kittu.< >.DisplayImageActivity.onCreate(DisplayImageActivity.java:44)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
我认为您正在使用 AppCompat,那么您应该使用 getSupportActionBar()
而不是 getActionBar()
。
改变这个:
getActionBar().setTitle("Image Preview");
对此:
getSupportActionBar().setTitle("Image Preview");
希望这对您有所帮助:)
如果您正在使用支持库,您的 activity 需要扩展它
import android.support.v7.app.AppCompatActivity
public class MainActivity extends AppCompatActivity{
并使用 getSupportActionBar()
而不是 getActionBar()
我知道这很简单,但我无法修复 it.Tried 来自 SOF.com 的许多解决方案,但 none 有效。我正在尝试显示 activity 的标题并抛出 NPE。 testing.Below 使用 API19 的代码是:
在activity中:
public class DisplayImageActivity extends RootActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().setTitle("Image Preview");
在清单中:
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".DisplayImageActivity"
android:label="< app name >"
android:screenOrientation="portrait" >
</activity>
在style.xml中:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
最后,logcat 说:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kittu.<> /com.example.kittu.<>.DisplayImageActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2334)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.access0(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.kittu.< >.DisplayImageActivity.onCreate(DisplayImageActivity.java:44)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
我认为您正在使用 AppCompat,那么您应该使用 getSupportActionBar()
而不是 getActionBar()
。
改变这个:
getActionBar().setTitle("Image Preview");
对此:
getSupportActionBar().setTitle("Image Preview");
希望这对您有所帮助:)
如果您正在使用支持库,您的 activity 需要扩展它
import android.support.v7.app.AppCompatActivity
public class MainActivity extends AppCompatActivity{
并使用 getSupportActionBar()
而不是 getActionBar()