Android活动意外停止
我正试图使用Android活动意外停止,android,android-activity,sharedpreferences,Android,Android Activity,Sharedpreferences,我正试图使用SharedReference存储一些值并稍后访问它们,但不知道为什么我的活动崩溃并出现此错误 06-12 11:03:40.459 1525-1525/? E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ets.medecord/com.ets.medecord.SplashActiv
SharedReference
存储一些值并稍后访问它们,但不知道为什么我的活动
崩溃并出现此错误
06-12 11:03:40.459 1525-1525/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ets.medecord/com.ets.medecord.SplashActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1680)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
at android.app.ActivityThread.access$1500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:353)
at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:348)
at com.ets.medecord.SplashActivity.<init>(SplashActivity.java:15)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
at android.app.ActivityThread.access$1500(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3835)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
在类外方法中,
此
为null
。它还没有初始化
因此,您不能在这些地方传递此
类外方法,而在中,此
为null
。它还没有初始化
因此,您不能在这些地方传递此
类外方法,而在中,此
为null
。它还没有初始化
因此,您不能在这些地方传递此
类外方法,而在中,此
为null
。它还没有初始化
因此,您不能在这些地方传递此
问题在于:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
将共享首选项行移动到onCreate,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
...
}
那就行了
PreferenceManager.getDefaultSharedReferences(this)
给您一个空指针异常的原因是在onCreate()
之前无法解决此问题:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
将共享首选项行移动到onCreate,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
...
}
那就行了
PreferenceManager.getDefaultSharedReferences(this)
给您一个空指针异常的原因是在onCreate()
之前无法解决此问题:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
将共享首选项行移动到onCreate,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
...
}
那就行了
PreferenceManager.getDefaultSharedReferences(this)
给您一个空指针异常的原因是在onCreate()
之前无法解决此问题:
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
将共享首选项行移动到onCreate,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
...
}
那就行了
PreferenceManager.getDefaultSharedReferences(this)
给您一个空指针异常的原因是在onCreate()
尝试将这些共享首选项行放入onCreate()之前无法解决此问题。@hungryghost已经完成了此操作。移动这些行可以修复错误。您必须将pref
和editor
设置为final,因为它们在内部类中使用。SplashActivity.java:15
这一行是哪一行?@MatterCat但为什么android studio不将其视为问题。因为每当我在内部类中使用任何其他变量时,都建议将其设置为最终变量,但这次它不会显示类似的内容。请尝试将这些共享首选项行放在onCreate()中。@hungryghost已经这样做了。移动这些行应该可以修复错误。您必须将pref
和editor
设置为final,因为它们在内部类中使用。SplashActivity.java:15
这一行是哪一行?@MatterCat但为什么android studio不将其视为问题。因为每当我在内部类中使用任何其他变量时,都建议将其设置为最终变量,但这次它不会显示类似的内容。请尝试将这些共享首选项行放在onCreate()中。@hungryghost已经这样做了。移动这些行应该可以修复错误。您必须将pref
和editor
设置为final,因为它们在内部类中使用。SplashActivity.java:15
这一行是哪一行?@MatterCat但为什么android studio不将其视为问题。因为每当我在内部类中使用任何其他变量时,都建议将其设置为最终变量,但这次它不会显示类似的内容。请尝试将这些共享首选项行放在onCreate()中。@hungryghost已经这样做了。移动这些行应该可以修复错误。您必须将pref
和editor
设置为final,因为它们在内部类中使用。SplashActivity.java:15
这一行是哪一行?@MatterCat但为什么android studio不将其视为问题。因为每当我在内部类中使用任何其他变量时,建议将其设为最终变量,但这次它不会显示类似的内容。