5
« on: November 15, 2013, 11:42:32 am »
Hi,
I am trying to load a serialized file but I am getting Can't deserialize object error.
Code used to load serialized object:
----------------------------------------------------------------------------------------------------------------------------
ZipInputStream zis = new ZipInputStream(mContext.getResources().openRawResource(R.raw.teapot));
try {
zis.getNextEntry();
} catch (IOException e) {throw new RuntimeException(e);}
cube = Loader.loadSerializedObject(zis);
-----------------------------------------------------------------------------------------------------------------------------
Error:
11-15 15:56:08.478: E/Trace(11279): error opening trace file: No such file or directory (2)
11-15 15:56:08.828: E/AndroidRuntime(11279): FATAL EXCEPTION: GLThread 6828
11-15 15:56:08.828: E/AndroidRuntime(11279): java.lang.RuntimeException: [ 1384511168803 ] - ERROR: Can't deserialize object: length=256; regionStart=-1; regionLength=257
11-15 15:56:08.828: E/AndroidRuntime(11279): at com.threed.jpct.Logger.log(Logger.java:189)
11-15 15:56:08.828: E/AndroidRuntime(11279): at com.threed.jpct.DeSerializer.deserialize(DeSerializer.java:244)
11-15 15:56:08.828: E/AndroidRuntime(11279): at com.threed.jpct.Loader.loadSerializedObject(Loader.java:93)
11-15 15:56:08.828: E/AndroidRuntime(11279): at com.threed.jpct.example.HelloWorld$MyRenderer.onSurfaceChanged(HelloWorld.java:204)
11-15 15:56:08.828: E/AndroidRuntime(11279): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1531)
11-15 15:56:08.828: E/AndroidRuntime(11279): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1266)
-----------------------------------------------------------------------------------------------------------------------------
If I use following code to load:
cube = Loader.loadSerializedObject(mContext.getResources().openRawResource(R.raw.teapot));
Error:
11-15 15:53:34.603: E/Trace(11063): error opening trace file: No such file or directory (2)
11-15 15:53:34.945: E/AndroidRuntime(11063): FATAL EXCEPTION: GLThread 6816
11-15 15:53:34.945: E/AndroidRuntime(11063): java.lang.RuntimeException: [ 1384511014916 ] - ERROR: Can't deserialize object: [ 1384511014915 ] - ERROR: Unsupported version: 6
11-15 15:53:34.945: E/AndroidRuntime(11063): at com.threed.jpct.Logger.log(Logger.java:189)
11-15 15:53:34.945: E/AndroidRuntime(11063): at com.threed.jpct.DeSerializer.deserialize(DeSerializer.java:244)
11-15 15:53:34.945: E/AndroidRuntime(11063): at com.threed.jpct.Loader.loadSerializedObject(Loader.java:93)
11-15 15:53:34.945: E/AndroidRuntime(11063): at com.threed.jpct.example.HelloWorld$MyRenderer.onSurfaceChanged(HelloWorld.java:204)
11-15 15:53:34.945: E/AndroidRuntime(11063): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1531)
11-15 15:53:34.945: E/AndroidRuntime(11063): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1266)
----------------------------------------------------------------------------------------------------------------------------
Code used to serialize an object in Desktop JPCT (object is basic Teapot):
----------------------------------------------------------------------------------------------------------------------------
box = loadModel("models/"+thingName+".obj","models/"+thingName+".mtl", 100);
try {
new DeSerializer().serialize(box, new FileOutputStream("models/teapot.ser"), true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
private Object3D loadModel(String filename, String filemtl, float scale) throws IOException {
InputStream streamModel = getResources().getAssets().open(filename);
InputStream streamMtl = getResources().getAssets().open(filemtl);
Object3D[] model = Loader.loadOBJ(streamModel, stearmMtl, scale);
Object3D o3d = new Object3D(0);
Object3D temp = null;
for (int i = 0; i < model.length; i++) {
temp = model;
temp.setCenter(SimpleVector.ORIGIN);
temp.rotateX((float)( -.5*Math.PI));
temp.rotateMesh();
temp.setRotationMatrix(new Matrix());
o3d = Object3D.mergeObjects(o3d, temp);
o3d.build();
}
return o3d;
}
--------------------------------------------------------------------------------------------------------------------
Any help would be appreciated.