title: WearableListView ClassNotFoundException Support v4 ArrayMap
body: <p>Ok this is a fun one: I'm using Android Studio 1.1.0, I have an Android app and a correlating Android Wear app i'm trying to test on a smart watch device. I've placed the class files I used in my Android app into an Android library module then added it as a dependency into my Android Wear app. The app builds and deploys onto the smart watch but when it runs I get the below exception and stack trace. Any suggestions would be appreciated. Thank you!</p>
  
  <pre><code>04-17 21:55:45.764    7759-7759/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
      Process: com.myapp.wear, PID: 7759
      android.view.InflateException: Binary XML file line #12: Error inflating class android.support.wearable.view.WearableListView
              at android.view.LayoutInflater.createView(LayoutInflater.java:633)
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at android.support.wearable.view.WatchViewStub.inflate(WatchViewStub.java:179)
              at android.support.wearable.view.WatchViewStub.onApplyWindowInsets(WatchViewStub.java:148)
              at android.view.View.dispatchApplyWindowInsets(View.java:6514)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5782)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchApplyWindowInsets(PhoneWindow.java:2333)
              at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:1205)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1423)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
              at android.view.Choreographer.doCallbacks(Choreographer.java:580)
              at android.view.Choreographer.doFrame(Choreographer.java:550)
              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
              at android.os.Handler.handleCallback(Handler.java:739)
              at android.os.Handler.dispatchMessage(Handler.java:95)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
       Caused by: java.lang.reflect.InvocationTargetException
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
              at android.view.LayoutInflater.createView(LayoutInflater.java:607)
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at android.support.wearable.view.WatchViewStub.inflate(WatchViewStub.java:179)
              at android.support.wearable.view.WatchViewStub.onApplyWindowInsets(WatchViewStub.java:148)
              at android.view.View.dispatchApplyWindowInsets(View.java:6514)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5782)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchApplyWindowInsets(PhoneWindow.java:2333)
              at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:1205)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1423)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
              at android.view.Choreographer.doCallbacks(Choreographer.java:580)
              at android.view.Choreographer.doFrame(Choreographer.java:550)
              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
              at android.os.Handler.handleCallback(Handler.java:739)
              at android.os.Handler.dispatchMessage(Handler.java:95)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
       Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
              at android.support.v7.widget.RecyclerView$State.&lt;init&gt;(RecyclerView.java:7461)
              at android.support.v7.widget.RecyclerView.&lt;init&gt;(RecyclerView.java:233)
              at android.support.wearable.view.WearableListView.&lt;init&gt;(WearableListView.java:151)
              at android.support.wearable.view.WearableListView.&lt;init&gt;(WearableListView.java:147)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
              at android.view.LayoutInflater.createView(LayoutInflater.java:607)
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at android.support.wearable.view.WatchViewStub.inflate(WatchViewStub.java:179)
              at android.support.wearable.view.WatchViewStub.onApplyWindowInsets(WatchViewStub.java:148)
              at android.view.View.dispatchApplyWindowInsets(View.java:6514)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5782)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchApplyWindowInsets(PhoneWindow.java:2333)
              at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:1205)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1423)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
              at android.view.Choreographer.doCallbacks(Choreographer.java:580)
              at android.view.Choreographer.doFrame(Choreographer.java:550)
              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
              at android.os.Handler.handleCallback(Handler.java:739)
              at android.os.Handler.dispatchMessage(Handler.java:95)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
       Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/com.myapp.wear-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp.wear-1/lib/arm, /vendor/lib, /system/lib]]
              at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
              at android.support.v7.widget.RecyclerView$State.&lt;init&gt;(RecyclerView.java:7461)
              at android.support.v7.widget.RecyclerView.&lt;init&gt;(RecyclerView.java:233)
              at android.support.wearable.view.WearableListView.&lt;init&gt;(WearableListView.java:151)
              at android.support.wearable.view.WearableListView.&lt;init&gt;(WearableListView.java:147)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
              at android.view.LayoutInflater.createView(LayoutInflater.java:607)
              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
              at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
              at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
              at android.support.wearable.view.WatchViewStub.inflate(WatchViewStub.java:179)
              at android.support.wearable.view.WatchViewStub.onApplyWindowInsets(WatchViewStub.java:148)
              at android.view.View.dispatchApplyWindowInsets(View.java:6514)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5782)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:5786)
              at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchApplyWindowInsets(PhoneWindow.java:2333)
              at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:1205)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1423)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
              at android.view.Choreographer.doCallbacks(Choreographer.java:580)
              at android.view.Choreographer.doFrame(Choreographer.java:550)
              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
              at android.os.Handler.handleCallback(Handler.java:739)
              at android.os.Handler.dispatchMessage(Handler.java:95)
              at android.os.Looper.loop(Looper.java:135)
              at android.app.ActivityThread.main(ActivityThread.java:5221)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.lang.reflect.Method.invoke(Method.java:372)
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
      Suppressed: java.lang.ClassNotFoundException: android.support.v4.util.ArrayMap
              at java.lang.Class.classForName(Native Method)
              at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
              at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
              ... 36 more
       Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
  </code></pre>
  
  <p>Here's a visual of the gradle configs and modules: 
  <img src="https://i.stack.imgur.com/PqBDS.png" alt="library config">
  <img src="https://i.stack.imgur.com/P5Mxo.png" alt="wear config"></p>