I'm using the example in this Android Developers Document to try to implement an "Action Drawer". The project compiles, but upon loading, it immediately crashes. The sample app runs, and I've tried to copy all the relevant parts almost verbatim. Can anybody explain why it can't instantiate/inflate the class?
Error messages on xml layout file:
The following classes could not be instantiated: - android.support.wearable.view.drawer.WearableActionDrawer
The following classes could not be found: - android.support.wear.widget.drawer.WearableDrawerLayout
Stack trace:
08-05 15:57:46.287 3993-3993/com.mendonphoto.abeddes.run2gps E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mendonphoto.abeddes.run2gps, PID: 3993 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mendonphoto.abeddes.run2gps/com.mendonphoto.run2gps.MainActivity}: android.view.InflateException: Binary XML file line #301: Binary XML file line #301: Error inflating class android.support.wearable.view.drawer.WearableActionDrawer at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: android.view.InflateException: Binary XML file line #301: Binary XML file line #301: Error inflating class android.support.wearable.view.drawer.WearableActionDrawer Caused by: android.view.InflateException: Binary XML file line #301: Error inflating class android.support.wearable.view.drawer.WearableActionDrawer Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:430) at android.view.LayoutInflater.createView(LayoutInflater.java:645) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at android.view.LayoutInflater.inflate(LayoutInflater.java:377) at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:412) at android.app.Activity.setContentView(Activity.java:2414) at com.mendonphoto.run2gps.MainActivity.setLayout(MainActivity.java:646) at com.mendonphoto.run2gps.MainActivity.onCreate(MainActivity.java:680) at android.app.Activity.performCreate(Activity.java:6682) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0 at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190) at android.content.res.Resources.getDrawable(Resources.java:770) at android.content.res.Resources.getDrawable(Resources.java:742) at android.support.wearable.view.drawer.WearableActionDrawerMenu$WearableActionDrawerMenuItem.setIcon(WearableActionDrawerMenu.java:268) at android.view.MenuInflater$MenuState.setItem(MenuInflater.java:441) at android.view.MenuInflater$MenuState.addItem(MenuInflater.java:494) at android.view.MenuInflater.parseMenu(MenuInflater.java:190) at android.view.MenuInflater.inflate(MenuInflater.java:111) at android.support.wearable.view.drawer.WearableActionDrawer.(WearableActionDrawer.java:163) 08-05 15:57:46.288 3993-3993/com.mendonphoto.abeddes.run2gps E/AndroidRuntime: at android.support.wearable.view.drawer.WearableActionDrawer.(WearableActionDrawer.java:106) at android.support.wearable.view.drawer.WearableActionDrawer.(WearableActionDrawer.java:102) ... 26 more
Here's the layout in my xml file:
<android.support.wear.widget.drawer.WearableDrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mendonphoto.run2gps.MainActivity"
tools:deviceIds="wear">
...a bunch of stuff
</android.support.wear.widget.drawer.WearableDrawerLayout>
And my build.gradle file:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.mendonphoto.abeddes.run2gps"
minSdkVersion 25
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:2.0.3'
compile 'com.google.android.wearable:wearable:2.0.3'
compile 'com.google.android.gms:play-services-wearable:11.0.2'
compile 'com.google.android.gms:play-services-location:11.0.2'
compile 'com.android.support:support-v13:25.3.1'