onCreate() 抛出空指针异常
onCreate() throws NULL Pointer exception
我一直在尝试移植我的应用程序以支持 Lollipop 之前的设备,但当我 运行 L 之前的设备上的应用程序时,操作栏似乎丢失了。这主要是因为 getActionBar
返回 NULL,我认为从我在 SO 上阅读的帖子来看,我应该转到 getSupportActionBar()
,我这样做并更改了我的 Splash Activity 以使用这个主题:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
但是当 onCreate(Bundle)
被调用用于我的 Splash Activity 并且 setContentView()
被调用时,我现在得到以下异常:
02-18 14:38:42.750 27331-27331/com.airwatch.tunnel E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.airwatch.tunnel/com.airwatch.tunnel.ui.activities.SplashActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access0(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.support.v7.app.AppCompatDelegateImplV7.applyFixedSizeWindow(AppCompatDelegateImplV7.java:487)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:287)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
最初,我遇到了 You need to use a Theme.AppCompat theme (or descendant) with this activity 中列出的错误,但是在我如上所述更改 theme
之后,我遇到了上述崩溃。有人可以提供一些关于如何解决这个问题的建议吗?我找不到任何关于我现在面临的问题的具体信息。谢谢。
更新:
下面是 onCreate() 中的 Java 代码设置:
@Override
protected void onCreate(Bundle arg0) {
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
super.onCreate(arg0);
}
替换
@Override
protected void onCreate(Bundle arg0) {
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
super.onCreate(arg0);
}
有
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
}
super
应该是此方法的第一次调用。
您的方法应如下所示
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
}
我一直在尝试移植我的应用程序以支持 Lollipop 之前的设备,但当我 运行 L 之前的设备上的应用程序时,操作栏似乎丢失了。这主要是因为 getActionBar
返回 NULL,我认为从我在 SO 上阅读的帖子来看,我应该转到 getSupportActionBar()
,我这样做并更改了我的 Splash Activity 以使用这个主题:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
但是当 onCreate(Bundle)
被调用用于我的 Splash Activity 并且 setContentView()
被调用时,我现在得到以下异常:
02-18 14:38:42.750 27331-27331/com.airwatch.tunnel E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.airwatch.tunnel/com.airwatch.tunnel.ui.activities.SplashActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access0(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.support.v7.app.AppCompatDelegateImplV7.applyFixedSizeWindow(AppCompatDelegateImplV7.java:487)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:287)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
最初,我遇到了 You need to use a Theme.AppCompat theme (or descendant) with this activity 中列出的错误,但是在我如上所述更改 theme
之后,我遇到了上述崩溃。有人可以提供一些关于如何解决这个问题的建议吗?我找不到任何关于我现在面临的问题的具体信息。谢谢。
更新:
下面是 onCreate() 中的 Java 代码设置:
@Override
protected void onCreate(Bundle arg0) {
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
super.onCreate(arg0);
}
替换
@Override
protected void onCreate(Bundle arg0) {
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
super.onCreate(arg0);
}
有
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
}
super
应该是此方法的第一次调用。
您的方法应如下所示
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_splash);
initViews();
mProfileReadyReceiver.registerReceiver();
}