[Desserializar Objeto] - expected receiver of type java.util.TimeZone, but got null

18 respostas
lina

Oi,

Tenho o código:

new ObjectInputStream ( ab_uncompress ? (InputStream) new InflaterInputStream(ao_is_object) : ao_is_object ).readObject();

E obtenho essa exceção:

09-13 17:18:15.178: W/System.err(4760): java.lang.NullPointerException: expected receiver of type java.util.TimeZone, but got null 09-13 17:18:15.188: W/System.err(4760): at java.lang.reflect.Field.setField(Native Method) 09-13 17:18:15.188: W/System.err(4760): at java.lang.reflect.Field.set(Field.java:588) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1151) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1249) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readContent(ObjectInputStream.java:733) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.discardData(ObjectInputStream.java:662) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1372) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.188: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.198: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.208: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNewArray(ObjectInputStream.java:1512) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:785) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.218: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.228: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNewArray(ObjectInputStream.java:1512) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:785) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1137) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1369) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851) 09-13 17:18:15.238: W/System.err(4760): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787) 09-13 17:18:15.248: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999) 09-13 17:18:15.248: W/System.err(4760): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956)

Como devo proceder ?

Tchauzin!

18 Respostas

juniorsatanas

posta a classe toda, e que vai fazer essa app ?

lina

Oi,

Essa app tenta desserializar um objeto do JDK.

Queria saber onde posso encontrar o source code do Android 4.0.3 para conseguir visualizar no Eclipse a classe ObjectInputStream.

Alguém sabe onde encontra-lo?

Tchauzin!

lina

Oi,

Já descobri o motivo do Exception. Estou desserializando um objeto Date do Android-Sdk para o JDK e não funciona.

Observei que as classes são totalmente diferentes. Alguém tem alguma sugestão?

Tchauzin!

O

Lina, a titulo de curiosidade (e quem sabe talvez dar alguma dica para resolver o seu problema), por que você está serializando um objeto Date no Android e enviando para uma JVM? Qual o mecanismo de “transferencia” deste objeto você está usando?

Eu já tive problemas de desserializar objeto do tipo “Date”, entre versão diferentes de JVM. Por estas experiências, eu não recomendo serializar este tipo de objeto.

lina

Oi,

Vamos ver se eu consigo dar um exemplo sem postar o meu código.

Eu tenho essa classe em ambas JVM:

public class TipoDate implements Serializable 
{
   public Date id_teste;

   public TipoDate(Date ad_teste) {

      id_teste = ad_teste;

   }
}

Numa outra classe dentro do JDK eu alimento essa estrutura e a gravo em arquivo, por meio deste método:

try
        	{
	        	FileOutputStream	
	        	lo_os_file		=	new FileOutputStream(as_filename);
		        	
	        	ObjectOutputStream
	        	lo_oo_object;
	        	
	                try
	                {    
	               		lo_oo_object		=	new ObjectOutputStream
	               						(
	               							ab_deflat 
		               							?	(OutputStream) new DeflaterOutputStream(lo_os_file)
		               							:	(OutputStream) lo_os_file
	               						);
	                	lo_oo_object.writeObject(ao_object);
	                	lo_oo_object.close();
	                }
	                
	                finally
			{
	                	lo_os_file.close();
	                }
	      	}
	      	
	      	catch	(FileNotFoundException	ex)
	      	{
	      		throw	ex;
	      	}
	      	
	      	catch	(IOException		ex)
	      	{
	      		throw	ex;
	      	}

Então, dentro de minha aplicação Android, busco o arquivo e jogo para dentro da estrutura TipoDate:

Object
        	lo_object		=	null;

        	try
        	{	        	
	        	FileInputStream
			lo_ips_file		=	new FileInputStream(as_filename);

	        	ObjectInputStream
	        	lo_ips_object;
	
	        	try
	        	{
	        		lo_ips_object		=	new ObjectInputStream
	        						(
	        							ab_inflat
		        							?	(InputStream) new InflaterInputStream(lo_ips_file)
		        							:	lo_ips_file
	        						);
		        	lo_object		=	lo_ips_object.readObject(); //AQUI OCORRE O PROBLEMA.
		        	lo_ips_object.close();
	        	}
	        
	        	finally
	        	{
	        		lo_ips_file.close();
	        	}
        	}
	      	
	      	catch	(FileNotFoundException	ex)
	      	{
	      		throw	ex;
	      	}
	      	
	      	catch	(IOException		ex)
	      	{
	      		ex.printStackTrace();
	      		throw	ex;
	      	}

TipoDate teste = (TipoDate)lo_object;

Tchauzin!

O

Lina, minha dúvida não era em termos de código, mas por que você precisa cominicar via classes serializadas. Por experiências passadas, serializar objetos de classes “nativas” da JVM não é uma boa idéia, principalmente se for persistir em arquivos. Eu tentaria implementar esta “comunicação” como se estivesse usando RMI: criaria uma “classe de transporte”, tipo um TO, que seria baseada apenas em tipos primitivos. Ou usar uma mensagem em XML.

lina

Oi,

Sim. Eu sei disso. Só que essa minha aplicação já funciona assim entre JDK -> JDK. Estou portando para JDK -> Android e quero deixa-lo assim sem modificar muito.

Quando eu tento fazer o inverso, desserializar um objeto Date de Android-SDK para JDK, apresenta a exceção:

5/09 09:16:13 - Fail receiving object: libcore.util.ZoneInfo 25/09 09:16:13 - at java.net.URLClassLoader$1.run(Unknown Source) 25/09 09:16:13 - at java.security.AccessController.doPrivileged(Native Method) 25/09 09:16:13 - at java.net.URLClassLoader.findClass(Unknown Source) 25/09 09:16:13 - at java.lang.ClassLoader.loadClass(Unknown Source) 25/09 09:16:13 - at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 25/09 09:16:13 - at java.lang.ClassLoader.loadClass(Unknown Source) 25/09 09:16:13 - at java.lang.Class.forName0(Native Method) 25/09 09:16:13 - at java.lang.Class.forName(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.resolveClass(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readClassDesc(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadObject(Unknown Source) 25/09 09:16:13 - at java.util.Calendar.readObject(Unknown Source) 25/09 09:16:13 - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 25/09 09:16:13 - at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 25/09 09:16:13 - at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 25/09 09:16:13 - at java.lang.reflect.Method.invoke(Unknown Source) 25/09 09:16:13 - at java.io.ObjectStreamClass.invokeReadObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readArray(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readSerialData(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject0(Unknown Source) 25/09 09:16:13 - at java.io.ObjectInputStream.readObject(Unknown Source)

Tchauzin!

O

Sinto muito, mas não consigo enxergar uma solução simples para o seu problema (mas também não tenho grandes experiências com serialização de objetos).
Uma solução “maluca” que eu pensei, seria manipular o arquivo gerado, alterando a classe Date da JVM para classe Date do Android. Pensei em uma ferramenta que nem o ASM, mas não sei se é possível fazer isto. Sorry.

lina

oyama:
Sinto muito, mas não consigo enxergar uma solução simples para o seu problema (mas também não tenho grandes experiências com serialização de objetos).
Uma solução “maluca” que eu pensei, seria manipular o arquivo gerado, alterando a classe Date da JVM para classe Date do Android. Pensei em uma ferramenta que nem o ASM, mas não sei se é possível fazer isto. Sorry.

Oi,

Interessante :wink:

Obrigado pela força!

Tchauzin!

aechiara

lina,

se o objetivo é apenas passar do android para um servidor (ou o contrário) ao invés de serializar o objeto Date, converte para Long (com o getTime) e serializa o Long passa para a outra ponta e recrie o objeto Date

lina

aechiara:
lina,

se o objetivo é apenas passar do android para um servidor (ou o contrário) ao invés de serializar o objeto Date, converte para Long (com o getTime) e serializa o Long passa para a outra ponta e recrie o objeto Date

Oi,

Realmente. É uma saida, a questão é que não estamos falando de apenas 1 variável do tipo Date e sim ‘N’ variáveis.

Vou pensar numa solução e posto quando possível!

Tchauzin!

lina

Oi,

Caracas. Tentei passar um objeto LONG e transforma-lo no outro lado (Android-SDK -> JDK) e apresentou o mesmo exception:

25/09 11:32:21 - Fail receiving object: libcore.util.ZoneInfo 25/09 11:32:21 - at java.net.URLClassLoader$1.run(Unknown Source) 25/09 11:32:21 - at java.security.AccessController.doPrivileged(Native Method) 25/09 11:32:21 - at java.net.URLClassLoader.findClass(Unknown Source) 25/09 11:32:21 - at java.lang.ClassLoader.loadClass(Unknown Source) 25/09 11:32:21 - at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

Tchauzin!

aechiara

lina,

só para tirar uma duvida, String ou Bytes vão corretamente ?

Esse erro acontece no Android ou no Server ?

lina:
Oi,

Caracas. Tentei passar um objeto LONG e transforma-lo no outro lado (Android-SDK -> JDK) e apresentou o mesmo exception:

25/09 11:32:21 - Fail receiving object: libcore.util.ZoneInfo 25/09 11:32:21 - at java.net.URLClassLoader$1.run(Unknown Source) 25/09 11:32:21 - at java.security.AccessController.doPrivileged(Native Method) 25/09 11:32:21 - at java.net.URLClassLoader.findClass(Unknown Source) 25/09 11:32:21 - at java.lang.ClassLoader.loadClass(Unknown Source) 25/09 11:32:21 - at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

Tchauzin!

lina

aechiara:
lina,

só para tirar uma duvida, String ou Bytes vão corretamente ?

Esse erro acontece no Android ou no Server ?

lina:
Oi,

Caracas. Tentei passar um objeto LONG e transforma-lo no outro lado (Android-SDK -> JDK) e apresentou o mesmo exception:

25/09 11:32:21 - Fail receiving object: libcore.util.ZoneInfo 25/09 11:32:21 - at java.net.URLClassLoader$1.run(Unknown Source) 25/09 11:32:21 - at java.security.AccessController.doPrivileged(Native Method) 25/09 11:32:21 - at java.net.URLClassLoader.findClass(Unknown Source) 25/09 11:32:21 - at java.lang.ClassLoader.loadClass(Unknown Source) 25/09 11:32:21 - at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

Tchauzin!

Oi,

Sim. String e Byte vão corretamente.

O erro acima está acontecendo no servidor…

Tchauzin!

aechiara

duas coisas me vem a cabeça

  1. as classes que vc está Serializando e Des-Serializando estão no mesmo pacote tanto no servidor quanto no cliente, certo ?

  2. como esses dados vão do Android para o Servidor ? Se for via Socket não tem muito o que fazer, mas se for via json ou soap ou alguma outra coisa
    tem alguns frameworks que podem ajudar

de qualquer forma eu tentaria fazer alguma coisa com XML ou json se possível

aechiara

lina, eu olhei novamente a sua primeira mensagem e não vi a Exception que foi lançada

nem sinal das Exceptions classícas de serialização:

ou algo parecido ?

lina

Oi,

aechiara:
duas coisas me vem a cabeça

  1. as classes que vc está Serializando e Des-Serializando estão no mesmo pacote tanto no servidor quanto no cliente, certo ?

Sim. Estão no mesmo pacote.

Via Socket mesmo.

Tchauzin!

lina

aechiara:
lina, eu olhei novamente a sua primeira mensagem e não vi a Exception que foi lançada

nem sinal das Exceptions classícas de serialização:

ou algo parecido ?

Oi,

Nada. Apenas isso.

Tchauzin!

Criado 14 de setembro de 2012
Ultima resposta 25 de set. de 2012
Respostas 18
Participantes 4