0
나는 Socket, PrintWriter 클래스 참조를 포함하는 복잡한 클래스 "Class11"을 가지고있다. 활동간에 전달하는 동안 예외가 발생합니다.안드로이드에서 복합 객체를 흑백으로 처리하기
java.lang.RuntimeException: unable to marshall value Socket[address=/192.168.43.225,port=9990,localport=213234]
at android.os.Parcel.writeValue(Parcel.java:1137)
at android.os.Parcel.writeArray(Parcel.java: 543)........
- 그것 때문입니다 : 내가 커플 링을 줄일 것이 아니라 정적 객체 참조, 을 통해 공유의 옵션이 있지만
public interface Interface11 extends Parcelable{ ........... } public class Class11 implements Interface11 { Socket clientSocket; ServerSocket serverSocket; PrintWriter writer; BufferedReader reader; private JChatConnection(Parcel in) { Object [] objects= in.readArray(Object.class.getClassLoader()); clientSocket=(Socket) objects[0]; serverSocket=(ServerSocket) objects[1]; writer=(PrintWriter) objects[2]; reader=(BufferedReader) objects[3]; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { Object objects[] = new Object[4]; objects[0]=clientSocket; objects[1]=serverSocket; objects[2]=writer; objects[3]=reader; dest.writeArray(objects); } public static final Parcelable.Creator<Class11> CREATOR = new Parcelable.Creator<Class11>() { public Class11 createFromParcel(Parcel in) { return new Class11(in); } public Class11[] newArray(int size) { return new Class11[size]; } }; };
내가 내가 예외 &있어, 의도을 통해 전달하려 소켓, PrintWriter가 parcellable 아니거나,
- 나는이 코드를 writeToParcel() 및 private Class11 (Parcel in)에 넣고 있습니다.
누구나 활동간에이 객체를 전달하는 방법에 대한 아이디어가 있습니까?
우리의 호기심뿐 아니라, 앱에 Class1, Class2, Class3 ...이 있습니까? 아니면 도메인 이름일까요? –
이것은 내 수업의 원래 이름을 숨기기위한 잔혹한 시도입니다! - 비밀 007 물건. –