Android应用程序在返回按钮时崩溃(performResumeActivity)

Android应用程序在返回按钮时崩溃(performResumeActivity),android,listview,android-activity,resume,Android,Listview,Android Activity,Resume,我的应用程序目前由两个活动组成。 . 具有图库视图的主要活动 . 具有列表视图的FriendsListActivity 当用户使用“上一步”按钮离开FriendsListActivity并返回到主活动时,以下错误会在调试模式下不断弹出 DalvikVM[localhost:8676]线程[ 主系统已暂停(例外情况) RuntimeException)) ActivityThread.performResumeActivity(IBinder, 布尔值)行:2095 ActivityThread.

我的应用程序目前由两个活动组成。 . 具有图库视图的主要活动 . 具有列表视图的FriendsListActivity

当用户使用“上一步”按钮离开FriendsListActivity并返回到主活动时,以下错误会在调试模式下不断弹出

DalvikVM[localhost:8676]线程[ 主系统已暂停(例外情况) RuntimeException))
ActivityThread.performResumeActivity(IBinder, 布尔值)行:2095
ActivityThread.handleResumeActivity(IBinder, 布尔值,布尔值)行:2110
BinderProxy(ActivityThread$H).handleMessage(消息) 电话号码:954 ActivityThread$H(处理程序).dispatchMessage(消息) 行:99 Looper.loop()行:123 ActivityThread.main(字符串[])行: 3647方法。invokenactive(对象, 对象[],类,类[],类,int, 布尔值)行:不可用[本机] 方法]方法。调用(对象, 对象…)行:507
ZygoteInit$MethodAndArgsCaller.run() 行:839 ZygoteInit.main(字符串[]) 电话:597 NativeStart.main(字符串[])行:非 可用的[本机方法]线程 [装订线#2](运行)
螺纹[活页夹螺纹#1] (正在运行)

和LogCat在一起

03-13 22:01:10.972: 错误/AndroidRuntime(1038):致命 例外情况:main 03-13 22:01:10.972: 错误/AndroidRuntime(1038): java.lang.RuntimeException:无法 恢复活动 {com.package.MAIN/com.package.MAIN.MAIN}: java.lang.NullPointerException 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.ActivityThread.performResumeActivity(ActivityThread.java:2095) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2110) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:954) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.os.Handler.dispatchMessage(Handler.java:99) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 Looper.loop(Looper.java:123) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 main(ActivityThread.java:3647) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 java.lang.reflect.Method.Invokenactive(本机) 方法)03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 java.lang.reflect.Method.invoke(Method.java:507) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 dalvik.system.NativeStart.main(本机) 方法)03-13 22:01:10.972: 错误/AndroidRuntime(1038):由以下原因引起: java.lang.NullPointerException 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 com.package.MAIN.MAIN.onResume(MAIN.java:91) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.Activity.performResume(Activity.java:3833) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):在 android.app.ActivityThread.performResumeActivity(ActivityThread.java:2085) 03-13 22:01:10.972: 错误/AndroidRuntime(1038):。。。10 更多

变量面板中的更多信息说明:
此:ActivityThread
e:NullPointerException
原因:NullPointerException
详细信息:空
stackTrace:null
r:ActivityThread$ActivityClientRecord
活动:主要

一次Eclipse恢复后的detailMessage:无法恢复活动(主)

FriendsListativity中的代码如下所示

public class FriendsListActivity extends ListActivity {

// ===========================================================
// Fields
// ===========================================================

private ArrayList<Friend> friends = new ArrayList<Friend>();
private FriendsArrayAdapter friendsArrayAdapter;
private ListView listView;

// ===========================================================
// onCreate
// ===========================================================

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.friends_list);

    registerForContextMenu(getListView());
    setButtonNewFriendClickListener();
}

public void generateFriendsList() {
    FriendsService fs = new FriendsService(this);
    friends = fs.getFriendsList();

    listView = (ListView) findViewById(android.R.id.list);
    friendsArrayAdapter = new FriendsArrayAdapter(
       this, R.layout.friend_list_item, friends);
    listView.setAdapter(friendsArrayAdapter);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.friends_context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    FriendsService fs = new FriendsService(this);
    Friend f = new Friend();
    f = friends.get(info.position);
    switch (item.getItemId()) {
    case R.id.edit:
        Intent i = new Intent(this, FriendEditActivity.class);
        i.putExtra("userid", f.userId);
        startActivity(i);
        return true;
    case R.id.delete:
        fs.deleteFriend(f.userId);
        generateFriendsList();
        return true;
    default:
        return super.onContextItemSelected(item);
    }
}

// ===========================================================
// onPause
// ===========================================================

protected void onPause() {
    super.onPause();
    finish();
}

// ===========================================================
// onResume
// ===========================================================

protected void onResume() {
    super.onResume();
    generateFriendsList();
}

// ===========================================================
// onStop
// ===========================================================

protected void onStop() {
    super.onStop();
}

// ===========================================================
// onDestroy
// ===========================================================

@Override
protected void onDestroy() {
    super.onDestroy();
}

// ===========================================================
// Activity methods
// ===========================================================

private void setButtonNewFriendClickListener() {
    Button clickButton = (Button)findViewById(R.id.button_add_friend);
    clickButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(v.getContext(), FriendNewActivity.class);
            startActivity(i);
        }
    });
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  android:versionCode="1"
  android:versionName="1.0" package="com.package.mypackage">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name="com.package.mypackage.mypackage"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
     <activity android:name=".FriendsListActivity"></activity>
     <activity android:name=".FriendEditActivity"></activity>
     <activity android:name=".FriendNewActivity"></activity>
     <activity android:name=".TakePictureActivity"></activity>
     <activity android:name=".FriendsService"></activity>
     <activity android:name=".MyService"></activity>
</application>
<uses-sdk android:minSdkVersion="9" />
公共类FriendsListActivity扩展了ListActivity{
// ===========================================================
//田地
// ===========================================================
private ArrayList friends=新建ArrayList();
私人好友rayadapter好友rayadapter;
私有列表视图列表视图;
// ===========================================================
//一次创建
// ===========================================================
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.friends\u列表);
registerForContextMenu(getListView());
setButtonNewFriendClickListener();
}
public void generateFriendsList(){
FriendsService fs=新的FriendsService(此);
friends=fs.getFriendsList();
listView=(listView)findViewById(android.R.id.list);
friendsArrayAdapter=新的friendsArrayAdapter(
此,R.layout.friend\u列表项目,friends);
setAdapter(friendsArrayAdapter);
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单、视图v、ContextMenuInfo菜单信息){
super.onCreateContextMenu(menu,v,menuInfo);
MenuInflater充气机=getMenuInflater();
充气器。充气(右菜单。朋友菜单,菜单);
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
AdapterContextMenuInfo信息=(AdapterContextMenuInfo)项。getMenuInfo();
FriendsService fs=新的FriendsService(此);
Friend f=新朋友();
f=friends.get(信息位置);
开关(item.getItemId()){
案例R.id.edit:
意图i=新意图(这个,FriendEditActivity.class);
i、 putExtra(“userid”,f.userid);
星触觉(i);
返回true;
案例R.id.delete:
fs.deleteFriend(f.userId);
generateFriendsList();
返回true;
违约:
返回super.onContextItemSelected(项目);
}
}
// ===========================================================
//
    package com.package.mypackage;

import java.util.ArrayList;

import com.package.domain.Domain;
import com.package.service.MyService;
import com.package.viewadapter.myImageAdapter;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.Toast;

public class myActivity extends Activity {

// ===========================================================
// Fields
// ===========================================================

private MyImageAdapter myImageAdapter;
private ArrayList<Domain> domain = new ArrayList<Domain>();

// ===========================================================
// onCreate
// ===========================================================

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

    /* Set Buttons to listen for any click event. */
    setButtonFriendsClickListener();
    setButtonCameraClickListener();
    setButtonPreferencesClickListener();
}

// ===========================================================
// onStart
// ===========================================================

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

    /* Find the gallery defined in the main.xml */        
    Gallery g = (Gallery) findViewById(R.id.gallery);
    /* Show a Toast message when image is clicked */
    g.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            MyImageAdapter image_ID = new MyImageAdapter(myActivity.this, position, null);
            if (image_ID.getItemId(position) == 0) {
                Toast test_toast = Toast.makeText(myActivity.this, "This is the New Image click", Toast.LENGTH_SHORT);
                test_toast.show();
            }
            else {
                Toast test_toast = Toast.makeText(myActivity.this, "The clicked image has image number " + image_ID.getItemId(position) + " in the imageadapter.", Toast.LENGTH_SHORT);
                test_toast.show();
            }
        }
    });

    g.setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
            MyImageAdapter image_ID = new MyImageAdapter(myActivity.this, position, null);
            Toast test_toast = Toast.makeText(myActivity.this, "The long clicked image has image number " + image_ID.getItemId(position) + " in the imageadapter.", Toast.LENGTH_SHORT);
            test_toast.show();
            return true;
        }
    });
}

// ===========================================================
// onPause
// ===========================================================

protected void onPause() {
    super.onPause();
}

// ===========================================================
// onResume
// ===========================================================

protected void onResume() {
    super.onResume();
    generateMyGallery();
}

// ===========================================================
// onStop
// ===========================================================

protected void onStop() {
    super.onStop();
}

// ===========================================================
// onDestroy
// Is also called when user changes from horizontal
// to vertical orientation and back
// ===========================================================

@Override
protected void onDestroy() {
    super.onDestroy();
}

// ===========================================================
// Save and Restore UI states
// ===========================================================

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
}

// ===========================================================
// Main Activity methods
// ===========================================================


public void generateMyGallery() {
    MyService cs = new MyService(this);
    domain = cs.getDomainList();

    // Add the new_image drawable to the ArrayList
    Domain d = new Domain();
    d.photoLocation = "drawable";
    d.photoName = "new_image";
    d.extra1 = "no_text";
    d.extra2 = "no_text";
    domain.add(0, d);

    myImageAdapter = new MyImageAdapter(this, R.layout.text_overlay_image_view, domain);

    /* Find the gallery defined in the main.xml */        
    Gallery g = (Gallery) findViewById(R.id.gallery);
    g.setSpacing(10);

    /* Apply a new (custom) ImageAdapter to it. */
    g.setAdapter(myImageAdapter);
    g.setSelection(1);
}

private void setButtonFriendsClickListener() {
    Button clickButton = (Button)findViewById(R.id.button_friends_list);
    clickButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.friends_list);

            Intent myIntent = new Intent(v.getContext(), FriendsListActivity.class);
            startActivity(myIntent);
        }
    });
}

private void setButtonCameraClickListener() {
    Button clickButton = (Button)findViewById(R.id.button_take_picture);
    clickButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.take_picture);

            Intent myIntent = new Intent(v.getContext(), TakePictureActivity.class);
            startActivity(myIntent);
        }
    });
}

private void setButtonPreferencesClickListener() {
    Button clickButton = (Button)findViewById(R.id.button_preferences);
    clickButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent myIntent = new Intent(v.getContext(), MyPreferencesActivity.class);
            startActivity(myIntent);
        }
    });
    }
};