Android 检查时出现NullPointerException(ParseUser.getCurrentUser()!=null)

Android 检查时出现NullPointerException(ParseUser.getCurrentUser()!=null),android,login,parse-platform,nullpointerexception,Android,Login,Parse Platform,Nullpointerexception,我是Parse.com的新手,目前正在Android中使用Parse构建我的第一个项目。我试图复制“Anywall”教程()中显示的登录工作流,但我绝对无法让它工作 每当我尝试启动应用程序时,它都会给我一个NullPointerException,我试图在DispatchActivity中检查(ParseUser.getCurrentUser()!=null)(代码如下所示): LogCat中的stacktrace如下所示: 07-13 00:34:54.925 6268-6268/com

我是Parse.com的新手,目前正在Android中使用Parse构建我的第一个项目。我试图复制“Anywall”教程()中显示的登录工作流,但我绝对无法让它工作

每当我尝试启动应用程序时,它都会给我一个NullPointerException,我试图在DispatchActivity中检查(ParseUser.getCurrentUser()!=null)(代码如下所示):

LogCat中的stacktrace如下所示:

07-13 00:34:54.925    6268-6268/com.appzylabs.pratik.groupreceipts W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xa6142908)
07-13 00:34:54.925    6268-6268/com.appzylabs.pratik.groupreceipts E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appzylabs.pratik.groupreceipts/com.appzylabs.pratik.groupreceipts.DispatchActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.parse.Parse.getParseDir(Parse.java:304)
            at com.parse.ParseObject.getFromDisk(ParseObject.java:667)
            at com.parse.ParseUser$10.then(ParseUser.java:1056)
            at com.parse.ParseUser$10.then(ParseUser.java:1003)
            at bolts.Task$14.run(Task.java:796)
            at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
            at bolts.Task.completeAfterTask(Task.java:787)
            at bolts.Task.continueWithTask(Task.java:599)
            at bolts.Task.continueWithTask(Task.java:610)
            at com.parse.ParseUser.getCurrentUserAsync(ParseUser.java:1003)
            at com.parse.ParseUser.access$800(ParseUser.java:26)
            at com.parse.ParseUser$9.then(ParseUser.java:996)
            at com.parse.ParseUser$9.then(ParseUser.java:993)
            at com.parse.TaskQueue.enqueue(TaskQueue.java:61)
            at com.parse.ParseUser.getCurrentUserAsync(ParseUser.java:993)
            at com.parse.ParseUser.getCurrentUser(ParseUser.java:979)
            at com.parse.ParseUser.getCurrentUser(ParseUser.java:966)
            at com.appzylabs.pratik.groupreceipts.DispatchActivity.onCreate(DispatchActivity.java:26)
            at android.app.Activity.performCreate(Activity.java:5104)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
有些东西告诉我“ParseUser”没有正确初始化或实例化,但我的应用程序类中已经有以下代码:

public Application() {
    }

    @Override
    public void onCreate() {
        super.onCreate();

        Parse.enableLocalDatastore(this);
        Parse.initialize(this, "XXXX", "YYYY");

   }
}

我做错了什么?我就是搞不懂。有什么帮助吗?

您需要创建新的ParseUser对象并调用方法
ParseUser.signUp()
,或者使用一些凭据创建新的ParseUser并调用
ParseUser.logIn()
,以便能够使用
ParseUser.getCurrentUser()
,只要

这将从内存或磁盘(如果需要)检索具有有效会话的当前登录用户


我才意识到问题所在。我在单独的应用程序类中调用Parse.initialize(),如下所示:

public class Application extends android.app.Application {
...
Parse.initialize(this, "XXXX", "YYYY");
...
}
但是,我没有将该类添加到我的AndroidManifest.xml中,因此代码永远不会执行,解析永远不会初始化,并且ParseUser抛出了一个NullPointerException。一旦我把它添加到我的清单中,就像下面一样,它就起作用了:

<application
        android:name="com.appzylabs.pratik.groupreceipts.Application"

您的用户登录了吗?谢谢,但这是我犯的一个愚蠢的错误。如下所示。谢谢,但我犯了一个愚蠢的错误。计算结果如下。
<application
        android:name="com.appzylabs.pratik.groupreceipts.Application"