解析没有当前用户的查询
Parse query with no current user
我在 android 和 IOS 上有一个可用的应用程序。
两者的第一个 activity 是登录屏幕。
第二个 activity 是一个搜索功能,可以让您使用解析找到附近的用户。
不过,我正在尝试让应用程序允许用户无需登录即可进行搜索。
使用 IOS 很容易做到这一点。
在 android 中,我在清单文件中将启动 activity 更改为 activity 2(搜索 activity),它加载正常,但显然没有当前用户。
当我现在尝试 运行 查询时,应用程序停止运行,并且在调试器中它说用户为空。我猜这是这里的问题。
然后我尝试使用以下行在 oncreate 方法中创建一个匿名用户..
ParseAnonymousUtils.logIn(new LogInCallback() {
@Override
public void done(ParseUser user, ParseException e) {
if (e != null) {
Log.d("MyApp", "Anonymous login failed.");
} else {
Log.d("MyApp", "Anonymous user logged in.");
}
}
});
然后失败并显示消息
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getParseDir()' on a null object reference at com.parse.Parse.getParseDir(Parse.java:499)
虽然很奇怪。如果我将这段代码放在 activity 1 中,它确实有效,但是应用程序在尝试启动时会卡住 activity 2.
有人知道发生了什么事吗?或者如何解决我原来的原始问题?
谢谢
Parse 未初始化时会出现此错误。我猜你把你的 Parse.initialize()
代码放在了你的 activity 中。当你转到另一个时,初始化就丢失了。您需要扩展您的应用程序 class,以便它为整个应用程序保留一个初始化。
public class Application extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("id")
.clientKey("key")
.server("server")
.enableLocalDataStore()
.build()
);
ParseUser.enableAutomaticUser();
}
}
这在你的 AndroidManifest.xml
<application
android:name=".Application"
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme">
我在 android 和 IOS 上有一个可用的应用程序。
两者的第一个 activity 是登录屏幕。 第二个 activity 是一个搜索功能,可以让您使用解析找到附近的用户。
不过,我正在尝试让应用程序允许用户无需登录即可进行搜索。
使用 IOS 很容易做到这一点。
在 android 中,我在清单文件中将启动 activity 更改为 activity 2(搜索 activity),它加载正常,但显然没有当前用户。
当我现在尝试 运行 查询时,应用程序停止运行,并且在调试器中它说用户为空。我猜这是这里的问题。
然后我尝试使用以下行在 oncreate 方法中创建一个匿名用户..
ParseAnonymousUtils.logIn(new LogInCallback() {
@Override
public void done(ParseUser user, ParseException e) {
if (e != null) {
Log.d("MyApp", "Anonymous login failed.");
} else {
Log.d("MyApp", "Anonymous user logged in.");
}
}
});
然后失败并显示消息
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getParseDir()' on a null object reference at com.parse.Parse.getParseDir(Parse.java:499)
虽然很奇怪。如果我将这段代码放在 activity 1 中,它确实有效,但是应用程序在尝试启动时会卡住 activity 2.
有人知道发生了什么事吗?或者如何解决我原来的原始问题?
谢谢
Parse 未初始化时会出现此错误。我猜你把你的 Parse.initialize()
代码放在了你的 activity 中。当你转到另一个时,初始化就丢失了。您需要扩展您的应用程序 class,以便它为整个应用程序保留一个初始化。
public class Application extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("id")
.clientKey("key")
.server("server")
.enableLocalDataStore()
.build()
);
ParseUser.enableAutomaticUser();
}
}
这在你的 AndroidManifest.xml
<application
android:name=".Application"
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme">