0

我希望堆栈跟踪能讲述这个故事。作为典型,我setupActionBar()在里面调用onCreate并且代码setupActionBar()是自动生成的

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

也许其他人经历过类似的事情。我的清单、布局、字符串资源或我能看到的任何地方都没有红线。

04-06 09:59:25.913: E/AndroidRuntime(628): FATAL EXCEPTION: main
04-06 09:59:25.913: E/AndroidRuntime(628): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.game.example/com.game.example.WeaponActivity}: java.lang.NullPointerException
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.os.Looper.loop(Looper.java:137)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread.main(ActivityThread.java:4745)
04-06 09:59:25.913: E/AndroidRuntime(628):  at java.lang.reflect.Method.invokeNative(Native Method)
04-06 09:59:25.913: E/AndroidRuntime(628):  at java.lang.reflect.Method.invoke(Method.java:511)
04-06 09:59:25.913: E/AndroidRuntime(628):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-06 09:59:25.913: E/AndroidRuntime(628):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-06 09:59:25.913: E/AndroidRuntime(628):  at dalvik.system.NativeStart.main(Native Method)
04-06 09:59:25.913: E/AndroidRuntime(628): Caused by: java.lang.NullPointerException
04-06 09:59:25.913: E/AndroidRuntime(628):  at com.game.example.WeaponActivity.setupActionBar(WeaponActivity.java:103)
04-06 09:59:25.913: E/AndroidRuntime(628):  at com.game.example.WeaponActivity.onCreate(WeaponActivity.java:38)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.Activity.performCreate(Activity.java:5008)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
04-06 09:59:25.913: E/AndroidRuntime(628):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
04-06 09:59:25.913: E/AndroidRuntime(628):  ... 11 more
4

3 回答 3

0

我删除了该方法setupActionBar()和相关代码,它可以工作。

 @TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

有更好的解决方案吗?

于 2013-04-06T18:51:52.153 回答
0

确保您的应用程序在清单中正确设置了主题。

<application android:label="@string/app_name" android:icon="@drawable/icon" android:theme="@style/Theme.Holo">

确认您已将新活动添加到清单中 - 并且您没有覆盖它的主题。

于 2013-04-06T18:10:28.150 回答
0

正如@Bill Mote 所说,我遇到了同样的问题(setupActionBar() 上的 NullPointerException)我通过更改 AndroidManifest.xml 文件中的主题来解决这个问题:

<application
...
android:theme="@android:style/Theme.Black

android:theme="@android:style/Theme.Holo

那么一切都很好。

于 2015-10-27T14:43:21.727 回答