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不将其视为问题。因为每当我在内部类中使用任何其他变量时,建议将其设为最终变量,但这次它不会显示类似的内容。