2014-10-19 100 views
2

我试图在android中运行“democastplayer”示例(与tic tac toe相同的行为),并且它在我的手机上运行时似乎失败。错误很明显,但我不知道是什么导致它。我的项目编译得很好,但是当它运行时,我得到类未找到错误。我使用下面的方法在eclipse中包含了appcompat_v7,android-support-v7-mediarouter和google-play-services-lib项目。无法运行Android Chromecast示例

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

FWIW - 我与构建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 
+0

你有'support/v4'在项目中的lib? – 2014-10-19 13:33:20

+0

Rober t,非常感谢。 我认为我这样做(有点新),但我已经包含appcompat_v7作为我的Android库,并且它有两个罐子(android-support-v4.jar,android-support-v7-appcompat.jar)。我会假设这意味着它在我的道路上。 Eclipse正在编译就好了,它只是当我运行它时吐出来的。我假设这意味着它在eclipse中的路径中,但是一旦我离开eclipse就会失去它。 – mornindew 2014-10-19 13:49:43

+0

,你正在运行proguard?即哪个版本构建(调试,发布)。如果释放,请确保绕过proguard配置文件中的v4软件包 – 2014-10-19 13:54:18

回答

0

嗯。请转至v4/support jar的父库的'project.props'文件。

审查'referencing a lib project'

这parenet LIB应该提到的LIB在主project.pros并尝试修改孩子包含V4 /支(样品排序如下

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 
+0

对不起,我们非常感谢。我决定花一天时间,然后使用Fedora设置我的环境。我想停止使用Ubuntu,并且在我的脑海里,我希望我的Ubuntu安装有问题。唉 - 不是在Fedora上运行的情况,我有完全相同的问题。 在这种情况下,我的父项目是我的DemoCastPlayer项目。我检查了project.props,它们是正确的(和你的一样)。该项目在eclipse中编译得很好(这意味着它可以解决所有的依赖),但是一旦我部署到我的手机,然后我得到上述错误。 – mornindew 2014-10-23 03:44:03

0

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

+0

你在做什么?这两个罐子是相同的(如果您有任何疑问,请运行校验和) – 2014-10-22 01:47:28

+0

非常感谢您。不幸的是,我确定两者都是一样的。我甚至将类路径切换为使用另一个具有完全相同结果的类路径。 – mornindew 2014-10-23 04:11:44