简洁版本
实例化 android.support.v7.app.MediaRouteButton 对象时出现未处理的异常。我得到:
NoClassDefFoundError: android.support.v7.mediarouter.R$attr
这门课在哪里?或者如果它是自动生成的,我该如何让它自动生成?
加长版
我正在遵循此处找到的 chromecast Android 应用程序开发教程:https://developers.google.com/cast/cast_2nd-screen_app_tutorial https://developers.google.com/cast/cast_2nd-screen_app_tutorial
我正在 ubuntu 13.04 上使用 ADT 捆绑的 eclipse 进行开发。
我将以下 jar 文件导入到工作区中的 libs 目录中,并通过项目属性的“Java 构建路径”面板的“库”选项卡中的“添加 Jars...”按钮将它们包含在我的 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
我有一个活动(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 文件在哪里?我在 gen 目录中没有看到它,该目录中放置了 com.jeffbmartinez.helicast.R 文件。
此外,我觉得奇怪的是 MediaRouteButton 引用了一个包名称,但我在上面列出的 5 个 jar 依赖项中都找不到它。 android-support-v7-mediarouter.jar 仅包含android.support.v7.app.* and android.support.v7.media.*.
我唯一能找到参考的地方android.support.v7.mediarouter,除了我的错误日志之外,位于https://developer.android.com/reference/android/support/v7/mediarouter/package-summary.html https://developer.android.com/reference/android/support/v7/mediarouter/package-summary.html但那里的信息很少。
我缺少依赖吗?如果是这样,我在哪里可以获得它或如何生成它?
Thanks!