【问题标题】:java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelperjava.lang.NoClassDefFoundError:解析失败:Landroid/support/v4/animation/AnimatorCompatHelper
【发布时间】:2020-12-09 21:18:25
【问题描述】:

将 Android Studio 更新到 2.3 版后。每次我滑动 ViewPager 时,我都会收到此错误并且应用程序崩溃:

03-23 17:19:19.437 28523-28523/? E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.irokotv.plus, PID: 28523
   java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;
       at android.support.v7.widget.DefaultItemAnimator.resetAnimation(DefaultItemAnimator.java:515)
       at android.support.v7.widget.DefaultItemAnimator.animateAdd(DefaultItemAnimator.java:218)
       at android.support.v7.widget.SimpleItemAnimator.animateAppearance(SimpleItemAnimator.java:114)
       at android.support.v7.widget.RecyclerView.animateAppearance(RecyclerView.java:3528)
       at android.support.v7.widget.RecyclerView$4.processAppeared(RecyclerView.java:461)
       at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:249)
       at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3385)
       at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3135)
       at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3568)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1766)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
       at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
       at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1364)
       at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:846)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
       at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
       at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
       at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
       at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
       at com.android.internal.policy.DecorView.onLayout(DecorView.java:818)
       at android.view.View.layout(View.java:18793)
       at android.view.ViewGroup.layout(ViewGroup.java:5952)
       at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2615)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2331)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1490)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7027)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
       at android.view.Choreographer.doCallbacks(Choreographer.java:702)
       at android.view.Choreographer.doFrame(Choreographer.java:638)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6688)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)

该应用在更新之前可以正常运行。我已经清理了项目。使缓存无效并运行 gradle clean。不知道我还能做什么/尝试。我的同事可以构建该项目,并且可以正常运行。

【问题讨论】:

  • 检查 gradle 中的导入,看起来您的项目现在看不到它们(和 AnimatorCompatHelper 类)。那里有红线吗?
  • 同时发布您的build.gradle 文件。
  • 请确保您还更新了支持库。

标签: android android-layout android-studio


【解决方案1】:

将此代码写入app 文件夹中的build.gradle 文件中

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }

引用这个stackoverflow answer

希望对你有帮助,祝你编码愉快

【讨论】:

  • 这个解决方案似乎只有在我可以恢复到版本 25 的情况下才有效。我需要在版本 26 中公开的功能(特别是 xml 中的字体)。如何使用版本 26 并避免 AnimatorCompatHelper 上出现此 NoClassDef 错误?谢谢!
【解决方案2】:

我使用的是版本 26.0.1(在 Android Studio 3.0 beta 2 上)支持库的版本为 47,我也遇到了同样的问题。对我有用的是从所有 gradle 文件中删除/评论这一行:

compile 'com.android.support:support-v4:26.0.1'

然后将“Er Pathak Harshal”注释中的以下代码添加到build.gradle文件中(Module:app和Module:Library)的底部:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

请注意,如果您有超过 1 个 build.gradle 文件,即(模块:库和模块:yourapp),您需要在这两个文件中添加该代码才能使其正常工作。

【讨论】:

  • 哇...太棒了...为我工作...感谢@SolidSnake 澄清细节。
【解决方案3】:

您可以将支持 v7 的 lib 版本更改为 26.0.0-alpha1 shuch:

`compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
 compile 'com.android.support:design:26.0.0-alpha1'
 compile 'com.android.support:cardview-v7:26.0.0-alpha1'`

希望对你有帮助

【讨论】:

    【解决方案4】:

    我能够找出问题所在。 Android 工作室将“Android 支持存储库”(位于 sdk 管理器中)更新到版本 46,其中包括一堆适用于 Android O 的 Alpha 支持库。我恢复到版本 25,问题得到解决。显然,Android Studio 2.3 一直在针对 Alpha 支持库进行构建,导致依赖项不匹配,从而导致应用崩溃。

    【讨论】:

    • 嘿,你能告诉我我们如何恢复到版本 25 吗?我们这里有同样的问题。 - 提前致谢
    【解决方案5】:

    我修复了 Gradle 应用中更新版本的错误

    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support:support-v4:27.0.2'
    

    implementation 'com.android.support:design:27.1.1’
    implementation 'com.android.support:support-v4:27.1.1’
    

    【讨论】:

      【解决方案6】:

      只需生成一个“APK”而不是即时运行,它就会完美运行。

      【讨论】:

        【解决方案7】:

        使用最新的支持库。 (最新的稳定版本对我有用 - 即目前从 27.1.1 或更早版本升级到 28.0.0 可以修复它。)

        【讨论】:

          【解决方案8】:

          我也遇到了同样的问题。打猎了一整天,一无所获。然后在早上头脑清醒时,我意识到我的一个自定义库正在使用 java 8 功能,而我的应用程序模块 gradle 文件没有启用它。

          所以我只是在build.gradle(Modeule:app) 文件中添加了以下行以使其工作:

          compileOptions {
                  targetCompatibility 1.8
                  sourceCompatibility 1.8
          }
          

          我希望它也可以帮助其他人。

          【讨论】:

            【解决方案9】:

            我在集成 aviary sdk 时遇到了同样的问题,然后解决了降级问题,如下所示。 .

            • 应用与compile 'com.android.support:appcompat-v7:25.4.0'的兼容性
            • 目标sdk版本为targetSdkVersion 25
            • 编译sdk版本为compileSdkVersion 25

            【讨论】:

              【解决方案10】:

              确保在您的 build.gradle 文件中所有实现都具有相同的版本。

              implementation 'com.android.support:appcompat-v7:26.1.0'
              implementation 'com.android.support:design:26.1.0'
              implementation 'com.android.support:cardview-v7:26.1.0'
              

              【讨论】:

                猜你喜欢
                • 2017-01-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-09-05
                • 2017-04-12
                • 2016-05-04
                • 1970-01-01
                相关资源
                最近更新 更多