I'm not sure if i fully understand the problem. When loading an OBJ file in combination with a MTL, the loader will look up texture names in the TextureManager as defined in the MTL file. If it finds them, it assigns the textures. If not, it creates a dummy texture of that name. So after loading, you have a TextureManager populated with the textures used in the file, either created or prefilled by your own code with the proper textures. In addition, you will have uni-colored textures in there for the parts of the objects that had no textures but a color defined in the MTL file.
Now, you are writing the object to the sd by using Java's default serialization means. In that case, you actually have to serialize the textures too, because otherwise, they won't match when deserializing them. What i still don't get: Why are you doing this? Why don't you load the OBJ files again instead?
When using the DeSerializer class of the desktop version, it's a little different. Just like in the MTL, it only stores references to the names of the textures in the texture manager. And just like with any other loader, it will either create dummy textures for these names or use the textures with that name provided by the TextureManager.
As mentioned above, you should be able to deserialize the textures if you force a re-upload by calling the little method that i mentioned. Have you tried that? Did it work?