gpt4 book ai didi

java - 无法恢复 Activity - NullPointerException

转载 作者:行者123 更新时间:2023-11-30 02:45:31 26 4
gpt4 key购买 nike

我知道这是一个很常见的问题,但我四处搜索并尝试解决以下问题但没有成功。

特别是,以下是我从 logcat 收到的消息。

08-03 17:55:53.885: E/AndroidRuntime(1286): FATAL EXCEPTION: main
08-03 17:55:53.885: E/AndroidRuntime(1286): Process: com.dooba.beta, PID: 1286
08-03 17:55:53.885: E/AndroidRuntime(1286): java.lang.RuntimeException: Unable to resume activity {com.dooba.beta/com.dooba.beta.MatchingActivity}: java.lang.NullPointerException
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2788)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2817)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.access$800(ActivityThread.java:135)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.os.Handler.dispatchMessage(Handler.java:102)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.os.Looper.loop(Looper.java:136)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.main(ActivityThread.java:5017)
08-03 17:55:53.885: E/AndroidRuntime(1286): at java.lang.reflect.Method.invokeNative(Native Method)
08-03 17:55:53.885: E/AndroidRuntime(1286): at java.lang.reflect.Method.invoke(Method.java:515)
08-03 17:55:53.885: E/AndroidRuntime(1286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-03 17:55:53.885: E/AndroidRuntime(1286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-03 17:55:53.885: E/AndroidRuntime(1286): at dalvik.system.NativeStart.main(Native Method)
08-03 17:55:53.885: E/AndroidRuntime(1286): Caused by: java.lang.NullPointerException
08-03 17:55:53.885: E/AndroidRuntime(1286): at com.dooba.beta.MatchingActivity.onResume(MatchingActivity.java:82)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.Activity.performResume(Activity.java:5310)
08-03 17:55:53.885: E/AndroidRuntime(1286): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2778)
08-03 17:55:53.885: E/AndroidRuntime(1286): ... 12 more

下面是 Activity 的代码

public class MatchingActivity extends Activity {

protected ParseRelation<ParseUser> mFriendsRelation;
protected ParseUser mCurrentUser;
protected List<ParseUser> mUsers;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.matching);
// Show the Up button in the action bar.

}

@Override
protected void onResume() {
super.onResume();

mCurrentUser = ParseUser.getCurrentUser();

setProgressBarIndeterminateVisibility(true);

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> users, ParseException e) {
if (e == null) {
mUsers = users;
} else {
// Something went wrong.
}
}
});

//This give you a list of users. Then to access one user you need to know the index the user is at.

ParseUser user = mUsers.get(5);

//then you can access that user's information

user.getString("name");
user.getNumber("age");
user.getString("headline");
}
}

下面是xml的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

</LinearLayout>

如有任何帮助,我们将不胜感激。提前致谢。

更新的代码:收到错误对于行

mUsers = new List<ParseUser>();

我收到以下消息:
“无法实例化类型 List

线条

 user.getString("name");
user.getNumber("age");
user.getString("headline");

我收到以下错误:
“无法解析用户”

提前致谢,下面是完整的更新代码。

public class MatchingActivity extends Activity {

protected ParseRelation<ParseUser> mFriendsRelation;
protected ParseUser mCurrentUser;
protected List<ParseUser> mUsers;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.matching);
// Show the Up button in the action bar.
//create list variable
mUsers = new List<ParseUser>();

}

@Override
protected void onResume() {
super.onResume();

mCurrentUser = ParseUser.getCurrentUser();

setProgressBarIndeterminateVisibility(true);

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> users, ParseException e) {
if (e == null) {

//add all the users to your list variable
mUsers.addAll(users);

} else {
// Something went wrong.
}
}
});

//check the size of your list to see how big it is before accessing it
final int size = mUsers.size();

//or use a loop to loop through each one
for(ParseUser mParseUser : mUsers) {
//skip over the current user
if(mParseUser == ParseUser.getCurrentUser())
continue;

user.getString("name");
user.getNumber("age");
user.getString("headline");
}

}
}

最佳答案

我认为你的问题出在下面这行代码中

  ParseUser user = mUsers.get(5); 

mUsers.get(5) 可能为空,或者不存在。您的代码中没有任何内容可以保证列表的大小至少为 5。

试试这个

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.matching);

//create list variable
mUsers = new List<ParseUser>();
}


@Override
protected void onResume() {

...

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>()
{

public void done(List<ParseUser> users, ParseException e)
{
if (e == null)
{
//add all the users to your list variable
mUsers.addAll(users);

//check the size of your list to see how big it is before accessing it
final int size = mUsers.size();

//or use a loop to loop through each one
for(ParseUser mParseUser : mUsers)
{
//skip over the current user
if(mParseUser == ParseUser.getCurrentUser())
continue;

//use the correct type when getting
final String mName = user.getString("name");
final int mNumber = user.getNumber("age");
final String mHeadLine = user.getString("headline");
}


}

else
{
// Something went wrong.
}

}

});
}

关于java - 无法恢复 Activity - NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com