AndroidRuntime error: Parcel: unable to marshal value
<p>I am trying to pass a HashMap to a new activity using the intent.puExtra function.  Stepping through the debugger it seems that it adds the HashMap no problem, however when startActivty() is called I get a runtime error stating that Parcel: unable to marshal value com.appName.Liquor.</p>

<p>Liquor is a custom class that I created, and I believe it, in combination with a HashMap, is causing the problem.  If I pass a string rather than my HashMap it loads the next activity no problem.</p>

<p>Main Activity</p>

<pre><code>lv.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView&lt;?&gt; 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);
</code></pre>

<p>Liquor Class</p>

<pre><code>public class Liquor
{
public String name;
public int code;
public String category;

private HashMap&lt;String, Bottle&gt; _bottles;

public Liquor()
{
    _bottles = new HashMap&lt;String, Bottle&gt;();
}

public void AddBottle(Bottle aBottle)
{
    _bottles.put(aBottle.size, aBottle);
}
}
</code></pre>

<p>Sub Activity</p>

<pre><code>public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    HashMap&lt;Integer, Liquor&gt; map = (HashMap&lt;Integer, Liquor&gt;)getIntent().getSerializableExtra("com.appName.cat");

    setListAdapter(new ArrayAdapter&lt;String&gt;(this, R.layout.list_item, GetNames(map)));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);
</code></pre>

<p>When the runtime error exists it never makes it into the sub activity class.  So I'm pretty sure the problem exists in the adding of the HashMap to the intent, and based off the error I believe my Liquor class is the cause, but I can't figure out why.</p>

<p>Your help will be much appreciated.  Thanks!</p>
