NoSuchMethodError:android.support.v4.view.ViewCompat.isAttachedToWindow

时间:2015-08-10 09:42:02

标签: java android eclipse android-appcompat

大家好!

我遇到了v7.AppCombatActivity的问题。我觉得找到解决方案似乎很愚蠢,因为在www中有很多其他帖子如何解决这个问题,但我无法让它发挥作用。所以我想我必须在这里发布我的问题以找到我的问题的解决方案。

这里的事实:

我的应用程序在启动周期中使用普通的全屏 - 活动作为启动画面,然后我以AppCombatActivity作为登录屏幕启动新的Intent。在我的Nexus5上没有问题(Android 5.1),但在我的Galaxy Tab10.1上它崩溃了(Android 4.2.2)。

08-10 11:06:09.530: W/dalvikvm(20561): VFY: unable to resolve static method 5918: Landroid/support/v4/view/ViewCompat;.isAttachedToWindow (Landroid/view/View;)Z
08-10 11:06:09.530: D/dalvikvm(20561): VFY: replacing opcode 0x71 at 0x0025
08-10 11:06:09.553: D/AndroidRuntime(20561): Shutting down VM
08-10 11:06:09.553: W/dalvikvm(20561): threadid=1: thread exiting with uncaught exception (group=0x41874930)
08-10 11:06:09.561: E/AndroidRuntime(20561): FATAL EXCEPTION: main
08-10 11:06:09.561: E/AndroidRuntime(20561): java.lang.NoSuchMethodError: android.support.v4.view.ViewCompat.isAttachedToWindow
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:796)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:836)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.parseInclude(LayoutInflater.java:807)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at de.ha.veng.LoginActivity.onCreate(LoginActivity.java:81)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.Activity.performCreate(Activity.java:5104)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.os.Looper.loop(Looper.java:137)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at android.app.ActivityThread.main(ActivityThread.java:5227)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at java.lang.reflect.Method.invokeNative(Native Method)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at java.lang.reflect.Method.invoke(Method.java:511)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
08-10 11:06:09.561: E/AndroidRuntime(20561):    at dalvik.system.NativeStart.main(Native Method)

这是我的Constalation: 我已将android-support-v7-appcombat复制到我的工作区并标记为"是Library" 它包含了所有的v4.jar,对吗? 我将此源添加到项目的属性中。 同样在我的项目中有一个v13,我总是得到这个警告:

WARNING: Found both android-support-v4 and android-support-v13 in the dependency list.
Because v13 includes v4, using only v13.

v4是否可能被build排除,因此appCombat无法访问v4.ViewCombat?

这里有一些照片:

工作区

the Workspace

V7

v7 Properties

v7 Build Path

v7 Order an Export

应用程序

App Properties

App Build Path

App Order an Export

请帮帮我!非常感谢!

的Torsten

(我不是以英语为母语的人)

2 个答案:

答案 0 :(得分:2)

切换到Android Studio无法解决问题。我会切换,但还没有,不是在项目的一半。下一个项目,好的。我有一个截止日期,如果我现在开始了解Android Studio的工作方式,我就无法持有它。

要将答案“切换到Android”标记为“有用”,我无法理解。

顺便说一句......我已经解决了我发布的问题。

答案 1 :(得分:1)

你正在使用有限制的ecllipse。只需切换到Android StudioAndroid Studio在Android开发人员和开源社区中越来越受欢迎 - 事实上,很多用户甚至都在移动完全远离Eclipse。

Eclipse is dead for Android development

你应该做什么

Migrate到Android Studio。对于一步一步的方法,您可以访问Getting Started with Android StudioAndroid Tutorial for Beginners。我希望它对您有很大的帮助