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

Jef*_*nez 5 android adt android-support-library google-cast

精简版

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

NoClassDefFoundError: android.support.v7.mediarouter.R$attr
Run Code Online (Sandbox Code Playgroud)

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

更长的版本

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

我在ubuntu 13.04上使用ADT捆绑的eclipse进行开发.

我将以下jar文件导入到工作区中的libs目录中,并通过项目属性的"Java Build Path"面板的"Libraries"选项卡中的"Add Jars ..."按钮将它们包含在我的Java Build Path中:

  • GoogleCastSdkAndroid-1.0.0.jar
  • Android的支持,v4.jar
  • Android的支持-V7-appcompat.jar
  • Android的支持-V7-gridlayout.jar
  • Android的支持-V7-mediarouter.jar

我有一个活动(由Eclipse创建的默认"hello world"),并且没有修改布局.我需要添加的唯一代码导致错误(粘贴在下面)显示如下:

import android.support.v7.app.MediaRouteButton;
...
MediaRouteButton mrb = new MediaRouteButton(this.getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

当我构建并运行应用程序时,我在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)
...
Run Code Online (Sandbox Code Playgroud)

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

此外,我发现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但是那里那里的信息很少.

我错过了依赖吗?如果是这样,我从哪里获得它或如何生成它?

谢谢!

Del*_*yan 9

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

mediarouter文件夹内运行android update lib-project -p .,然后您可以将其添加为依赖项.

  • 我按照步骤导入了android-support-v7-mediarouter项目.我收到错误消息:错误:检索项目的父项时出错:找不到与给定名称"Widget.AppCompat.ActionButton"匹配的资源.styles.xml/android-support-v7-mediarouter/res/values似乎无法找到解决此问题的解决方案.没有这个解决我无法运行我的应用程序项目.任何帮助,将不胜感激. (3认同)