【发布时间】:2015-02-06 06:41:59
【问题描述】:
当我尝试将我的对象从一个活动传送到另一个活动时出现问题。
Intent intent = new Intent(this, CreateOrEditContactActivity.class);
intent.putExtra("contact", currentContact);
startActivity(intent);
以下是我的班级联系人的描述:
public class Contact implements Parcelable{
private int ID;
private String name;
private String surname;
private String dob;
private String sex;
private String address;
private Drawable photo;
//Other constructors and methods
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeArray(new Object[]{ID, name, surname, dob, sex, address, photo});
}
public static final Parcelable.Creator<Contact> CREATOR = new Parcelable.Creator<Contact>() {
@Override
public Contact createFromParcel(Parcel source) {
return new Contact(source);
}
@Override
public Contact[] newArray(int size) {
return new Contact[size];
}
};
private Contact(Parcel parcel) {
Object[] data = parcel.readArray(Contact.class.getClassLoader());
ID = (Integer) data[0];
name = (String) data[1];
surname = (String) data[2];
dob = (String) data[3];
sex = (String) data[4];
address = (String) data[5];
photo = (Drawable) data[6];
}
我还注意到,如果在 currentContact photo == null 中,那么一切正常,如果不是,我得到一个致命的异常:
02-06 09:28:26.691 21650-21650/com.mycontacts.app D/AndroidRuntime﹕ Shutting down VM
02-06 09:28:26.693 21650-21650/com.mycontacts.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.mycontacts.app, PID: 21650
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at android.support.v7.internal.view.SupportMenuInflater$InflatedOnMenuItemClickListener.onMenuItemClick(SupportMenuInflater.java:259)
at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:596)
at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:145)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
可能是什么问题?如何正确地将我的对象传递给另一个活动?
【问题讨论】:
-
你能添加剩下的logcat吗?
-
提供的类和堆栈跟踪有什么关系?
标签: java android exception mobile fatal-error