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中:
我有一个活动(由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但是那里那里的信息很少.
我错过了依赖吗?如果是这样,我从哪里获得它或如何生成它?
谢谢!
你不能只包括罐子.您需要将android.support.v7.mediarouter项目添加为Android库依赖项.这样,项目中的资源就会合并到您自己的资源中.
在mediarouter文件夹内运行android update lib-project -p .,然后您可以将其添加为依赖项.
| 归档时间: |
|
| 查看次数: |
5246 次 |
| 最近记录: |