【发布时间】: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