android - 我在哪里可以找到 android.support.v7.mediarouter.R$attr?

标签 android adt android-support-library google-cast

精简版

我在实例化 android.support.v7.app.MediaRouteButton 对象时遇到未处理的异常。我得到:

NoClassDefFoundError: android.support.v7.mediarouter.R$attr

这个类在哪里?或者,如果它是自动生成的,我如何让它自动生成?

更长的版本

我正在关注此处的 chromecast Android 应用程序开发教程:https://developers.google.com/cast/cast_2nd-screen_app_tutorial

我在 ubuntu 13.04 上使用 ADT bundle 的 eclipse 进行开发。

我将以下 jar 文件导入到我工作区的 libs 目录中,并通过“Java 构建路径”面板的“库”选项卡中的“添加 Jar...”按钮将它们包含在我的 Java 构建路径中我的项目的属性:

  • GoogleCastSdkAndroid-1.0.0.jar
  • android-support-v4.jar
  • android-support-v7-appcompat.jar
  • android-support-v7-gridlayout.jar
  • android-support-v7-mediarouter.jar

我只有一个 Activity (由 Eclipse 创建的默认“hello world”),并且没有修改布局。我需要添加的唯一代码来导致错误(粘贴在下面)显示是这样的:

import android.support.v7.app.MediaRouteButton;
...
MediaRouteButton mrb = new MediaRouteButton(this.getApplicationContext());

当我构建并运行该应用程序时,我在 LogCat 中看到下面粘贴的错误消息(如果有人认为它相关,我可以发布更多消息)。我注意到的关键是我似乎缺少 android.support.v7.mediarouter.R$attr (NoClassDefFoundError),并且它是从 android.support.v7.app.MediaRouteButton 的构造函数中调用的

08-12 00:36:02.837: E/AndroidRuntime(29600): java.lang.NoClassDefFoundError: android.support.v7.mediarouter.R$attr
08-12 00:36:02.837: E/AndroidRuntime(29600):    at android.support.v7.app.MediaRouteButton.<init>(MediaRouteButton.java:117)
08-12 00:36:02.837: E/AndroidRuntime(29600):    at android.support.v7.app.MediaRouteButton.<init>(MediaRouteButton.java:113)
08-12 00:36:02.837: E/AndroidRuntime(29600):    at com.jeffbmartinez.helicast.MainActivity.onCreate(MainActivity.java:31)
...

它正在运行 MediaRouteButton 的构造函数这一事实使我相信 jar 文件已被正确找到,因此我认为我没有错误配置与依赖项(jar 文件)相关的 eclipse。但是,我的理解是这些“R”文件是自动生成的。如果这是正确的,我的 android.support.v7.mediarouter.R 文件在哪里?我没有在放置 com.jeffbmartinez.helicast.R 文件的 gen 目录中看到它。

此外,令我感到奇怪的是,MediaRouteButton 指的是一个我在上面列出的 5 个 jar 依赖项中找不到的包名称。 android-support-v7-mediarouter.jar 仅包含 android.support.v7.app.*android.support.v7.media.*

除了我的错误日志之外,我唯一找到对 android.support.v7.mediarouter 的引用的地方是 https://developer.android.com/reference/android/support/v7/mediarouter/package-summary.html但那里的信息很少。

我是否缺少依赖项?如果是这样,我从哪里获得它或如何生成它?

谢谢!

最佳答案

您不能只包括 jar 。您需要将 android.support.v7.mediarouter 项目添加为 Android 库依赖项。这样,项目中的资源将合并到您自己的资源中。

mediarouter 文件夹中运行 android update lib-project -p 。 然后你可以将它添加为依赖项。

关于android - 我在哪里可以找到 android.support.v7.mediarouter.R$attr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182535/

相关文章:

android - Nexus 9 模拟器未在 AVD 中显示

cordova - 安卓开发者工具 : exclude asset files (php) from apk build

android - 在 Eclipse 中安装 ADT 插件时出错

android - minifiedEnabled 导致渲染脚本崩溃 >Kitkat

android - android Jelly bean 运行时本地化

Android 对 edittext 的限制

android - 如何使我的自定义对象 Parcelable?

Android,自定义 View 中的 UI 元素

android - 在新版本的 Android 中使用支持类

android - API 26 的文本颜色行为支持库?