Java 当我从菜单中打开“编辑朋友”时,应用程序停止了

Java 当我从菜单中打开“编辑朋友”时,应用程序停止了,java,android,eclipse,selecteditem,Java,Android,Eclipse,Selecteditem,我对android的开发还不熟悉。每当我点击菜单选项卡中的编辑朋友时,应用程序就会停止。“我的注销”选项卡上未生成此错误。我正在发布MainActivity、EditFriendsActivity和LogCat 这是我的编辑朋友活动: package com.satty002.swag; import java.util.List; import android.app.AlertDialog; import android.app.ListActivity; import androi

我对android的开发还不熟悉。每当我点击菜单选项卡中的编辑朋友时,应用程序就会停止。“我的注销”选项卡上未生成此错误。我正在发布MainActivity、EditFriendsActivity和LogCat

这是我的编辑朋友活动:

   package com.satty002.swag;

import java.util.List;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.widget.ArrayAdapter;

import com.parse.FindCallback;
import com.parse.ParseException;
import com.parse.ParseQuery;
import com.parse.ParseUser;

public class EditFriendsActivity extends ListActivity {

public static final String TAG = EditFriendsActivity.class.getSimpleName();

protected List<ParseUser> mUsers; 

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

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

    setProgressBarIndeterminateVisibility(true);        
    ParseQuery<ParseUser> query = ParseUser.getQuery();
    query.orderByAscending(ParseConstants.KEY_USERNAME);
    query.setLimit(1000);
    query.findInBackground(new FindCallback<ParseUser>() {

        @Override
        public void done(List<ParseUser> users, ParseException e) {
            setProgressBarIndeterminateVisibility(false);       

            if (e == null) {
                //success
                users = mUsers;
                String[] usernames = new String[users.size()];
                int i = 0;
                for(ParseUser user : mUsers) {
                    usernames[i] = user.getUsername();
                    i++;
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                        EditFriendsActivity.this, android.R.layout.simple_list_item_checked, usernames);
                setListAdapter(adapter);
            }
            else {
                Log.e(TAG, e.getMessage() );
                AlertDialog.Builder builder = new AlertDialog.Builder(EditFriendsActivity.this);
                builder.setMessage(e.getMessage())
                .setTitle(R.string.error_title)
                .setPositiveButton(android.R.string.ok, null);

                AlertDialog dialog = builder.create();
                dialog.show();

            }


        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.edit_friends, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

缪斯从不初始化。因此,users也为null,users.size可能会导致done中的NullPointerException。检查mUsers或users是否不为空。

第一个stacktrace是实例化SwagApplication时出现的问题,与活动无关。这只是更新应用程序时的临时问题-请参阅。14秒后的NPE在第49行完成。那里有些东西是空的。调试以找到答案。请确保缪斯或用户不为null。您可能希望在某个地方为缪斯创建列表,例如,在onCreate via mUsers=new ArrayList;中;。这个问题已经解决了,但我现在看不到任何用户!是的,您必须将它们添加到您的列表中。
package com.satty002.swag;

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.parse.ParseAnalytics;
import com.parse.ParseUser;


public class MainActivity extends FragmentActivity implements ActionBar.TabListener {

public static final String TAG = MainActivity.class.getSimpleName(); 

/**
 * The {@link android.support.v4.view.PagerAdapter} that will provide
 * fragments for each of the sections. We use a
 * {@link FragmentPagerAdapter} derivative, which will keep every
 * loaded fragment in memory. If this becomes too memory intensive, it
 * may be best to switch to a
 * {@link android.support.v13.app.FragmentStatePagerAdapter}.
 */
SectionsPagerAdapter mSectionsPagerAdapter;

/**
 * The {@link ViewPager} that will host the section contents.
 */
ViewPager mViewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ParseAnalytics.trackAppOpened(getIntent());

    ParseUser currentUser = ParseUser.getCurrentUser();
    if (currentUser == null) {
        navigateToLogin();
    } else {
      Log.i(TAG, currentUser.getUsername());
    }


    // Set up the action bar.
    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    // When swiping between different sections, select the corresponding
    // tab. We can also use ActionBar.Tab#select() to do this if we have
    // a reference to the Tab.
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });

    // For each of the sections in the app, add a tab to the action bar.
    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        // Create a tab with text corresponding to the page title defined by
        // the adapter. Also specify this Activity object, which implements
        // the TabListener interface, as the callback (listener) for when
        // this tab is selected.
        actionBar.addTab(
                actionBar.newTab()
                        .setText(mSectionsPagerAdapter.getPageTitle(i))
                        .setTabListener(this));
    }
}


private void navigateToLogin() {
    Intent intent = new Intent(this, LoginActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_logout) {
        ParseUser.logOut();
        navigateToLogin();
        return true;
    }
    else if (id == R.id.action_edit_friends) {
        Intent intent = new Intent(this, EditFriendsActivity.class);
        startActivity(intent);
    }
    return super.onOptionsItemSelected(item);
}

@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    // When the given tab is selected, switch to the corresponding page in
    // the ViewPager.
    mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
}
08-16 11:42:26.933: D/dalvikvm(1232): Not late-enabling CheckJNI (already on)
08-16 11:42:27.243: E/Trace(1232): error opening trace file: No such file or directory (2)
08-16 11:42:27.663: I/MainActivity(1232): Satyam
08-16 11:42:27.824: D/dalvikvm(1232): GC_CONCURRENT freed 239K, 6% free 4333K/4600K, paused 4ms+26ms, total 142ms
08-16 11:42:28.014: D/libEGL(1232): loaded /system/lib/egl/libEGL_emulation.so
08-16 11:42:28.024: D/(1232): HostConnection::get() New Host Connection established 0x556f6690, tid 1232
08-16 11:42:28.034: D/libEGL(1232): loaded /system/lib/egl/libGLESv1_CM_emulation.so
08-16 11:42:28.034: D/libEGL(1232): loaded /system/lib/egl/libGLESv2_emulation.so
08-16 11:42:28.114: W/EGL_emulation(1232): eglSurfaceAttrib not implemented
08-16 11:42:28.156: D/OpenGLRenderer(1232): Enabling debug mode 0
08-16 11:45:03.034: D/dalvikvm(1232): Debugger has detached; object registry had 1 entries
08-16 11:46:22.263: E/Trace(1280): error opening trace file: No such file or directory (2)
08-16 11:46:22.303: D/AndroidRuntime(1280): Shutting down VM
08-16 11:46:22.303: W/dalvikvm(1280): threadid=1: thread exiting with uncaught exception (group=0x2bd39930)
08-16 11:46:22.313: E/AndroidRuntime(1280): FATAL EXCEPTION: main
08-16 11:46:22.313: E/AndroidRuntime(1280): java.lang.RuntimeException: Unable to instantiate application com.satty002.swag.SwagApplication: java.lang.NullPointerException
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4364)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.ActivityThread.access$1300(ActivityThread.java:141)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.os.Looper.loop(Looper.java:137)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.ActivityThread.main(ActivityThread.java:5039)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at java.lang.reflect.Method.invokeNative(Native Method)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at java.lang.reflect.Method.invoke(Method.java:511)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at dalvik.system.NativeStart.main(Native Method)
08-16 11:46:22.313: E/AndroidRuntime(1280): Caused by: java.lang.NullPointerException
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:379)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:322)
08-16 11:46:22.313: E/AndroidRuntime(1280):     at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
08-16 11:46:22.313: E/AndroidRuntime(1280):     ... 11 more
08-16 11:46:30.234: E/Trace(1316): error opening trace file: No such file or directory (2)
08-16 11:46:30.984: I/MainActivity(1316): Satyam
08-16 11:46:31.114: D/dalvikvm(1316): GC_CONCURRENT freed 277K, 7% free 4295K/4596K, paused 4ms+6ms, total 99ms
08-16 11:46:31.264: D/libEGL(1316): loaded /system/lib/egl/libEGL_emulation.so
08-16 11:46:31.264: D/(1316): HostConnection::get() New Host Connection established 0x55712580, tid 1316
08-16 11:46:31.286: D/libEGL(1316): loaded /system/lib/egl/libGLESv1_CM_emulation.so  
08-16 11:46:31.286: D/libEGL(1316): loaded /system/lib/egl/libGLESv2_emulation.so
08-16 11:46:31.344: W/EGL_emulation(1316): eglSurfaceAttrib not implemented
08-16 11:46:31.373: D/OpenGLRenderer(1316): Enabling debug mode 0
08-16 11:46:33.154: W/EGL_emulation(1316): eglSurfaceAttrib not implemented
08-16 11:46:33.464: D/dalvikvm(1316): GC_CONCURRENT freed 210K, 6% free 4489K/4728K, paused 4ms+3ms, total 96ms
08-16 11:46:35.713: W/EGL_emulation(1316): eglSurfaceAttrib not implemented
08-16 11:46:36.364: D/AndroidRuntime(1316): Shutting down VM
08-16 11:46:36.364: W/dalvikvm(1316): threadid=1: thread exiting with uncaught exception (group=0x2bd39930)
08-16 11:46:36.384: E/AndroidRuntime(1316): FATAL EXCEPTION: main
08-16 11:46:36.384: E/AndroidRuntime(1316): java.lang.NullPointerException
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.satty002.swag.EditFriendsActivity$1.done(EditFriendsActivity.java:49)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.parse.FindCallback.internalDone(FindCallback.java:45)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.parse.FindCallback.internalDone(FindCallback.java:31)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.parse.Parse$5$1.run(Parse.java:891)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at android.os.Handler.handleCallback(Handler.java:725)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at android.os.Looper.loop(Looper.java:137)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at android.app.ActivityThread.main(ActivityThread.java:5039)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at java.lang.reflect.Method.invokeNative(Native Method)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at java.lang.reflect.Method.invoke(Method.java:511)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-16 11:46:36.384: E/AndroidRuntime(1316):     at dalvik.system.NativeStart.main(Native Method)
08-16 11:46:38.394: E/Trace(1343): error opening trace file: No such file or directory (2)
08-16 11:46:39.094: I/MainActivity(1343): Satyam
08-16 11:46:39.184: D/dalvikvm(1343): GC_CONCURRENT freed 267K, 7% free 4289K/4584K, paused 4ms+6ms, total 72ms
08-16 11:46:39.344: D/libEGL(1343): loaded /system/lib/egl/libEGL_emulation.so
08-16 11:46:39.344: D/(1343): HostConnection::get() New Host Connection established 0x556cee40, tid 1343
08-16 11:46:39.364: D/libEGL(1343): loaded /system/lib/egl/libGLESv1_CM_emulation.so
08-16 11:46:39.364: D/libEGL(1343): loaded /system/lib/egl/libGLESv2_emulation.so
08-16 11:46:39.424: W/EGL_emulation(1343): eglSurfaceAttrib not implemented
08-16 11:46:39.445: D/OpenGLRenderer(1343): Enabling debug mode 0
08-16 11:46:41.484: D/dalvikvm(1343): GC_CONCURRENT freed 241K, 6% free 4436K/4704K, paused 4ms+2ms, total 28ms