You are on page 1of 3

android - RuntimeException: Parcelable encountered IOException readi... http://pt.stackoverflow.com/questions/37256/runtimeexception-parcelab...

registrar log-in tour ajuda

_
Stack Overflow em Português é um site Veja como funciona:
de perguntas e respostas para
programadores profissionais e
entusiastas. É 100% gratuito e não
requer registro.
Qualquer pessoa Qualquer um As melhores respostas
Registrar-se pode fazer uma pode responder recebem votos positivos e
pergunta sobem para os primeiros
lugares

RuntimeException: Parcelable encountered IOException reading a Serializable object

Não consigo entender e muito menos fazer rodar minha app.. Alguem consegue me dar uma luz?

@Override
public void onClick(View arg0) {
try{
Intent i = new Intent(Activity_Questionario.this,
Activity_Conf_Inicio_Ques.class);

PerguntaAdapter adapter = (PerguntaAdapter) lv.getAdapter();


List < Pergunta > ListaPergunta = adapter.getPerguntas();

final ArrayList < SerializablePair< Integer, Boolean > > respostas =


new ArrayList < SerializablePair< Integer, Boolean > > (ListaPergunta.size());

for (Pergunta pergunta: ListaPergunta) {


respostas.add(new SerializablePair< Integer, Boolean
>(pergunta.getId(), pergunta.getResposta()));
}

Log.i("Verificação", "Verificando: " + respostas);


//Log.i("Senha no Click", "Senha: " + senha);

i.putExtra("respostas", respostas);

startActivity(i);

}catch(Exception erro){
erro.printStackTrace();
}
}
});

E a outra classe que recebe os valores... Acredito que o erro esta dando nessa linha do ArrayList

try{
ArrayList<SerializablePair<Integer, Boolean>> respostas =
(ArrayList<SerializablePair<Integer, Boolean>>)
getIntent().getSerializableExtra("respostas");
Log.i("Respostas na Confirmação", "Respostas: "+respostas);

String urlPost = "http://"+l.IP+"/projetotcc/android/respostas.php";


ArrayList<NameValuePair> parametrosPost = new ArrayList<NameValuePair>();

for(SerializablePair<Integer, Boolean> item : respostas){

Log.i("Entrou", "Entrou no for(SerializablePair<Integer, Boolean> item :


a)");
parametrosPost.add(new BasicNameValuePair("codigoQuestionario",
item.first.toString()));
parametrosPost.add(new BasicNameValuePair("codigoPaciente",
item.second.toString()));

}catch(Exception erro){
erro.printStackTrace();
Toast.makeText(this, "Erro: "+erro, Toast.LENGTH_LONG).show();

LogCat:

10-17 14:12:39.090: W/System.err(2785): java.lang.RuntimeException: Parcelable encountered IOException reading a Serializable object
(name = br.com.projetotcc.utilitarios.SerializablePair) 10-17 14:12:39.100: W/System.err(2785): at
android.os.Parcel.readSerializable(Parcel.java:2144) 10-17 14:12:39.100: W/System.err(2785): at
android.os.Parcel.readValue(Parcel.java:2016) 10-17 14:12:39.110: W/System.err(2785): at
android.os.Parcel.readListInternal(Parcel.java:2235) 10-17 14:12:39.110: W/System.err(2785): at
android.os.Parcel.readArrayList(Parcel.java:1655) 10-17 14:12:39.120: W/System.err(2785): at
android.os.Parcel.readValue(Parcel.java:1986) 10-17 14:12:39.130: W/System.err(2785): at
android.os.Parcel.readMapInternal(Parcel.java:2226) 10-17 14:12:39.130: W/System.err(2785): at
android.os.Bundle.unparcel(Bundle.java:223) 10-17 14:12:39.150: W/System.err(2785): at
android.os.Bundle.getSerializable(Bundle.java:1254) 10-17 14:12:39.150: W/System.err(2785): at

1 de 3 16/02/2016 09:35
android - RuntimeException: Parcelable encountered IOException readi... http://pt.stackoverflow.com/questions/37256/runtimeexception-parcelab...

android.content.Intent.getSerializableExtra(Intent.java:4182) 10-17 14:12:39.150: W/System.err(2785): at


br.com.projetotcc.visao.Activity_Conf_Inicio_Ques.onCreate(Activity_Conf_Inicio_Ques.java:45) 10-17 14:12:39.162:
W/System.err(2785): at android.app.Activity.performCreate(Activity.java:5008) 10-17 14:12:39.162: W/System.err(2785): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 10-17 14:12:39.180: W/System.err(2785): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 10-17 14:12:39.180: W/System.err(2785): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 10-17 14:12:39.180: W/System.err(2785): at
android.app.ActivityThread.access$600(ActivityThread.java:130) 10-17 14:12:39.190: W/System.err(2785): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 10-17 14:12:39.200: W/System.err(2785): at
android.os.Handler.dispatchMessage(Handler.java:99) 10-17 14:12:39.200: W/System.err(2785): at
android.os.Looper.loop(Looper.java:137) 10-17 14:12:39.210: W/System.err(2785): at
android.app.ActivityThread.main(ActivityThread.java:4745) 10-17 14:12:39.220: W/System.err(2785): at
java.lang.reflect.Method.invokeNative(Native Method) 10-17 14:12:39.240: W/System.err(2785): at
java.lang.reflect.Method.invoke(Method.java:511) 10-17 14:12:39.240: W/System.err(2785): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 10-17 14:12:39.251: W/System.err(2785): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-17 14:12:39.260: W/System.err(2785): at
dalvik.system.NativeStart.main(Native Method) 10-17 14:12:39.280: W/System.err(2785): Caused by: java.io.InvalidClassException:
android.util.Pair; IllegalAccessException 10-17 14:12:39.300: W/System.err(2785): at
java.io.ObjectStreamClass.resolveConstructorClass(ObjectStreamClass.java:694) 10-17 14:12:39.310: W/System.err(2785): at
java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:655) 10-17 14:12:39.310: W/System.err(2785): at
java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1816) 10-17 14:12:39.310: W/System.err(2785): at
java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 10-17 14:12:39.329: W/System.err(2785): at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:2003) 10-17 14:12:39.329: W/System.err(2785): at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:1960) 10-17 14:12:39.341: W/System.err(2785): at
android.os.Parcel.readSerializable(Parcel.java:2142) 10-17 14:12:39.350: W/System.err(2785): ... 23 more

Classe SerializablePair

import java.io.Serializable; import android.util.Pair;

public class SerializablePair extends Pair implements Serializable {

public SerializablePair(F first, S second) {


super(first, second);
// TODO Auto-generated constructor stub
}

android web-service

editada 17/10/14 às 15:22 perguntada 17/10/14 às 14:20


Emerson Moraes
113 11

1 Resposta

Nota: Em Android, geralmente, é mais prático iniciar a análise da stack trace a partir do fim indo avaliando os
problemas até encontrarmos a última referencia a "Caused By". Essa última referência geralmente aponta para o
problema específico que estamos a enfrentar.

Não tens todo o output do LogCat, mas a causa do teu problema parece ser:

java.io.InvalidClassException: android.util.Pair; IllegalAccessException

Em suma, estás a tentar aceder a um campo ou método não acessível no decorrer de uma
serialização ou deserialização.

Decompondo um pouco o problema:

IllegalAccessException
Thrown when a program attempts to access a field or method which is not accessible from
the location where the reference is made.

Que traduzido:

Lançada quando um programa tenta acessar um campo ou método que não é acessível a
partir do local onde é feita a referência.

android.util.Pair
Container to ease passing around a tuple of two objects. This object provides a sensible
implementation of equals(), returning true if equals() is true on each of the contained
objects.

Que traduzido:

Contentor para facilitar a passagem em torno de uma tupla de dois objetos. Este objeto
fornece uma implementação sensata de equals(), retornando true se equals() é verdadeiro

2 de 3 16/02/2016 09:35
android - RuntimeException: Parcelable encountered IOException readi... http://pt.stackoverflow.com/questions/37256/runtimeexception-parcelab...

em cada um dos objetos contidos.

java.io.InvalidClassException
Signals a problem during the serialization or or deserialization of an object.

Que traduzido:

Sinaliza um problema durante a serialização ou deserialização de um objeto.

respondida 17/10/14 às 15:07


Zuul
24mil 3 42 119

Então @Zuul, Eu editei a postagem colocando a classe que ele se referencia, mais qual seria a solução
pra ele passar os dados.. Não estou entendendo muito... – Emerson Moraes 17/10/14 às 15:23

3 de 3 16/02/2016 09:35

You might also like