【问题标题】:Cannot run Android Chromecast examples无法运行 Android Chromecast 示例
【发布时间】:2014-12-14 13:28:17
【问题描述】:

我正在尝试在 android 中运行“democastplayer”示例(与井字游戏相同的行为),当我在手机上运行它时似乎失败了。错误很明显,但我不知道是什么原因造成的。我的项目编译得很好,但是当它运行时我得到类未找到错误。我使用以下方法在 Eclipse 中包含了 appcompat_v7、android-support-v7-mediarouter 和 google-play-services-lib 项目。

http://developer.android.com/tools/support-library/setup.html

FWIW - 我正在使用 build 21 进行编译,在 64 位 ubuntu 上进行开发,我的 hello world 示例运行良好。

任何帮助将不胜感激。

10-19 06:59:41.702: E/AndroidRuntime(22076): FATAL EXCEPTION: main
10-19 06:59:41.702: E/AndroidRuntime(22076): Process: com.google.android.gms.cast.samples.democastplayer, PID: 22076
10-19 06:59:41.702: E/AndroidRuntime(22076): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/ActivityManagerCompat;
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.support.v7.media.MediaRouter$GlobalMediaRouter.<init>(MediaRouter.java:1528)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.support.v7.media.MediaRouter.getInstance(MediaRouter.java:220)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at com.google.android.gms.cast.samples.democastplayer.BaseCastPlayerActivity.onCreate(BaseCastPlayerActivity.java:182)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at com.google.android.gms.cast.samples.democastplayer.SdkCastPlayerActivity.onCreate(SdkCastPlayerActivity.java:51)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.Activity.performCreate(Activity.java:5933)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.ActivityThread.access$800(ActivityThread.java:144)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.os.Handler.dispatchMessage(Handler.java:102)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.os.Looper.loop(Looper.java:135)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at android.app.ActivityThread.main(ActivityThread.java:5221)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at java.lang.reflect.Method.invoke(Native Method)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at java.lang.reflect.Method.invoke(Method.java:372)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
10-19 06:59:41.702: E/AndroidRuntime(22076): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.ActivityManagerCompat" on path: DexPathList[[zip file "/data/app/com.google.android.gms.cast.samples.democastplayer-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
10-19 06:59:41.702: E/AndroidRuntime(22076):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
10-19 06:59:41.702: E/AndroidRuntime(22076):    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
10-19 06:59:41.702: E/AndroidRuntime(22076):    ... 17 more
10-19 06:59:41.702: E/AndroidRuntime(22076):    Suppressed: java.lang.ClassNotFoundException: android.support.v4.app.ActivityManagerCompat
10-19 06:59:41.702: E/AndroidRuntime(22076):        at java.lang.Class.classForName(Native Method)
10-19 06:59:41.702: E/AndroidRuntime(22076):        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
10-19 06:59:41.702: E/AndroidRuntime(22076):        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
10-19 06:59:41.702: E/AndroidRuntime(22076):        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
10-19 06:59:41.702: E/AndroidRuntime(22076):        ... 18 more
10-19 06:59:41.702: E/AndroidRuntime(22076):    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

【问题讨论】:

  • 项目中是否有“support/v4”库?
  • 罗伯特,非常感谢。我认为我这样做了(在这方面有点新),但我已将 appcompat_v7 作为我的 Android 库包含在内,并且其中有两个 jar(android-support-v4.jar、android-support-v7-appcompat.jar)。我会假设这意味着它在我的道路上。 Eclipse 编译得很好,当我运行它时它只是呕吐。我假设这意味着它在 eclipse 中的路径中有它,但是一旦我离开 eclipse 它就会丢失它。
  • 你在运行 proguard 吗?即哪个版本构建(调试,发布)。如果发布,请确保绕过 proguard 配置文件中的 v4 包
  • 再次感谢。我没有运行proguard。它似乎在我的 project.properties 中被注释掉了。
  • 这有什么更新吗?我看到了同样的问题。 FWIW android-support-v4.jar 和 android-support-v7-appcompat.jar 都在 android-support-v7-appcompat 库项目的 Java 构建路径的 Order and Export 选项卡中检查。

标签: java android chromecast eclipse-adt


【解决方案1】:

嗯。转到 v4/support jar 的父库的“project.props”文件。

评论'referencing a lib project'

这个 parenet lib 应该在你的主 project.pros 中作为 lib 提及并尝试修改子以包含 v4/support(示例如下

target=android-19
android.library=true
android.library.reference.1=../../../../usr/local/src/android-sdk-linux/extras/android/support/v7/appcompat
android.library.reference.2=../../../../usr/local/src/android-sdk-linux/extras/android/support/v7/mediarouter
android.library.reference.3=../../../../usr/local/src/android-sdk-linux/extras/google/google_play_services/libproject/google-play-services_lib

【讨论】:

  • 抱歉耽搁了,非常感谢。我决定花一天时间使用 Fedora 来设置我的环境。我想停止使用 Ubuntu,在我的脑海里,我希望我的 Ubuntu 安装有问题。唉 - 在 Fedora 上运行并非如此,我遇到了完全相同的问题。在这种情况下,我的父项目是我的 DemoCastPlayer 项目。我检查了 project.props 并且它们是正确的(就像你的一样)。该项目在eclipse中编译得很好(这意味着它可以解决所有依赖项)但是一旦我部署到我的手机上,我就会得到上述错误。
【解决方案2】:

有两个不同的v4.jar,appcompat_v7中的v4.jar没有包含ActivityManagerCompat类,所以应该将v4.jar从sdk\extras\android\support\v4替换为appcompat_v7 lib。

【讨论】:

  • 你的依据是什么??这两个罐子是相同的(如果您有任何疑问,请运行校验和)
  • 非常感谢。不幸的是,我已经确定两者是相同的。我什至将类路径切换为使用另一个具有完全相同结果的路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 2014-04-26
  • 2017-05-29
相关资源
最近更新 更多