Android GoogleCast Error - java.lang.NoClassDefFoundError: android.support.v7.media.MediaRouterGlobalMediaRouter

Android GoogleCast Error - java.lang.NoClassDefFoundError: android.support.v7.media.MediaRouterGlobalMediaRouter

我正在编译这个 Github 项目 CastVideos-android 的 ChromeCast。在 Eclipse environment.I 中,项目上安装了最新的依赖项。

当我 运行 启动项目时,它会抛出这个 运行 时间错误。

   05-05 11:25:08.353: E/AndroidRuntime(17660): FATAL EXCEPTION: main
   05-05 11:25:08.353: E/AndroidRuntime(17660): java.lang.NoClassDefFoundError: android.support.v7.media.MediaRouter$GlobalMediaRouter
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.support.v7.media.MediaRouter$GlobalMediaRouter.<init>(MediaRouter.java:1628)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.support.v7.media.MediaRouter.getInstance(MediaRouter.java:246)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at com.google.android.libraries.cast.companionlibrary.cast.BaseCastManager.<init>(BaseCastManager.java:189)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.<init>(VideoCastManager.java:196)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.initialize(VideoCastManager.java:223)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at com.google.sample.cast.refplayer.CastApplication.onCreate(CastApplication.java:43)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4280)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.app.ActivityThread.access00(ActivityThread.java:143)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1301)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.os.Handler.dispatchMessage(Handler.java:99)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.os.Looper.loop(Looper.java:137)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at android.app.ActivityThread.main(ActivityThread.java:4950)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at java.lang.reflect.Method.invokeNative(Native Method)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at java.lang.reflect.Method.invoke(Method.java:511)
   05-05 11:25:08.353: E/AndroidRuntime(17660):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997)


   05-05 11:25:08.303: E/dalvikvm(17660): Could not find class 'android.support.v7.media.MediaRouter$GlobalMediaRouter', referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.<init>
   05-05 11:25:08.303: W/dalvikvm(17660): VFY: unable to resolve new-instance 1180 (Landroid/support/v7/media/MediaRouter$GlobalMediaRouter;) in Landroid/support/v7/media/MediaRouter$GlobalMediaRouter;
   05-05 11:25:08.303: D/dalvikvm(17660): VFY: replacing opcode 0x22 at 0x0035
   05-05 11:25:08.303: W/dalvikvm(17660): VFY: unable to find class referenced in signature (Landroid/support/v4/media/session/MediaSessionCompat;)
   05-05 11:25:08.313: I/dalvikvm(17660): Could not find method android.support.v4.media.session.MediaSessionCompat.getSessionToken, referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.getMediaSessionToken
   05-05 11:25:08.313: W/dalvikvm(17660): VFY: unable to resolve virtual method 2967: Landroid/support/v4/media/session/MediaSessionCompat;.getSessionToken ()Landroid/support/v4/media/session/MediaSessionCompat$Token;
   05-05 11:25:08.313: D/dalvikvm(17660): VFY: replacing opcode 0x6e at 0x0011
   05-05 11:25:08.323: W/dalvikvm(17660): VFY: unable to find class referenced in signature (Landroid/support/v4/media/session/MediaSessionCompat;)
   05-05 11:25:08.323: I/dalvikvm(17660): Could not find method android.support.v4.media.session.MediaSessionCompat.getRemoteControlClient, referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.setMediaSessionCompat
   05-05 11:25:08.323: W/dalvikvm(17660): VFY: unable to resolve virtual method 2966: Landroid/support/v4/media/session/MediaSessionCompat;.getRemoteControlClient ()Ljava/lang/Object;
   05-05 11:25:08.323: D/dalvikvm(17660): VFY: replacing opcode 0x6e at 0x000a
   05-05 11:25:08.323: I/dalvikvm(17660): Could not find method android.support.v4.media.session.MediaSessionCompat.getMediaSession, referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.setMediaSessionCompat
   05-05 11:25:08.323: W/dalvikvm(17660): VFY: unable to resolve virtual method 2965: Landroid/support/v4/media/session/MediaSessionCompat;.getMediaSession ()Ljava/lang/Object;
   05-05 11:25:08.323: D/dalvikvm(17660): VFY: replacing opcode 0x6e at 0x001e
   05-05 11:25:08.333: I/dalvikvm(17660): Could not find method android.support.v4.media.session.MediaSessionCompat.getRemoteControlClient, referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.setMediaSessionCompat
   05-05 11:25:08.333: W/dalvikvm(17660): VFY: unable to resolve virtual method 2966: Landroid/support/v4/media/session/MediaSessionCompat;.getRemoteControlClient ()Ljava/lang/Object;
   05-05 11:25:08.333: D/dalvikvm(17660): VFY: replacing opcode 0x6e at 0x0032
   05-05 11:25:08.333: I/dalvikvm(17660): Could not find method android.support.v4.media.session.MediaSessionCompat.addOnActiveChangeListener, referenced from method android.support.v7.media.MediaRouter$GlobalMediaRouter.setMediaSessionCompat
   05-05 11:25:08.333: W/dalvikvm(17660): VFY: unable to resolve virtual method 2964: Landroid/support/v4/media/session/MediaSessionCompat;.addOnActiveChangeListener (Landroid/support/v4/media/session/MediaSessionCompat$OnActiveChangeListener;)V
   05-05 11:25:08.333: D/dalvikvm(17660): VFY: replacing opcode 0x6e at 0x0044
   05-05 11:25:08.333: I/dalvikvm(17660): Failed resolving Landroid/support/v7/media/MediaRouter$GlobalMediaRouter; interface 510 'Landroid/support/v4/media/session/MediaSessionCompat$OnActiveChangeListener;'
   05-05 11:25:08.333: W/dalvikvm(17660): Link of class 'Landroid/support/v7/media/MediaRouter$GlobalMediaRouter;' failed

  1. 转到您的项目并检查 v7-appcompat jar 文件。右击它 Build Path-> Add to Buildpath

  2. 勾选buildpath。特别是 Order and Export 部分,如果您 v7-appcompat library勾选

  3. 检查您的项目是否包含多个support-v7 library。一个是 在 你的项目中,另一个在你添加的库中 在你的项目中。只需 删除 您添加的一个库 你的项目。然后 clean 和 运行 您的应用程序 .