Error de AndroidRuntime: paquete: no se puede calcular el valor

Estoy tratando de pasar un HashMap a una nueva actividad usando la función intent.puExtra. Al pasar por el depurador, parece que agrega el HashMap sin problemas, sin embargo, cuando se llama a startActivty () recibo un error de tiempo de ejecución que indica que Parcel: no se puede ordenar el valor com.appName.Liquor.

Liquor es una clase personalizada que creé, y creo que, en combinación con un HashMap, está causando el problema. Si paso una cadena en lugar de mi HashMap, carga la siguiente actividad sin problema.

Actividad principal

lv.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> parent, View view,
      int position, long id) {

      String cat = ((TextView) view).getText().toString();
      Intent i = new Intent(OhioLiquor.this, Category.class);
      i.putExtra("com.appName.cat", _liquorBase.GetMap());
      startActivity(i);

Clase de licor

public class Liquor
{
public String name;
public int code;
public String category;

private HashMap<String, Bottle> _bottles;

public Liquor()
{
    _bottles = new HashMap<String, Bottle>();
}

public void AddBottle(Bottle aBottle)
{
    _bottles.put(aBottle.size, aBottle);
}
}

Sub actividad

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    HashMap<Integer, Liquor> map = (HashMap<Integer, Liquor>)getIntent().getSerializableExtra("com.appName.cat");

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, GetNames(map)));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

Cuando existe el error de tiempo de ejecución, nunca llega a la clase de subactividad. Así que estoy bastante seguro de que el problema existe al agregar HashMap a la intención, y en base al error, creo que mi clase de Licor es la causa, pero no puedo entender por qué.

Su ayuda será muy apreciada. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta