2017-03-23 27 views
20

Po aktualizacji Androida Studio do wersji 2.3. Za każdym razem, gdy przesuję widok do strony ViewPager, ciągle pojawia się ten błąd, a aplikacja ulega awarii:java.lang.NoClassDefFoundError: Nie powiodło się rozwiązanie problemu: Landroid/support/v4/animation/AnimatorCompatHelper

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) 

Aplikacja działa dobrze przed aktualizacją. Już wyczyściłem projekt. Unieważnij pamięci podręczne i uruchom czystą gradację. Nie mam pojęcia, co jeszcze mogę zrobić/spróbować. Mój współpracownik może zbudować projekt i działa bez żadnego problemu.

+0

sprawdź import w gradle, wygląda na to, że twój projekt nie widzi ich teraz (oraz klasa "AnimatorCompatHelper"). jakieś czerwone linie? – snachmsm

+0

Opublikuj także swój plik 'build.gradle'. – azizbekian

+0

Upewnij się, że masz również zaktualizowaną bibliotekę pomocy technicznej. – Jordan

Odpowiedz

6

Udało mi się ustalić, o co chodziło. Studio Androida zaktualizowało "Repozytorium wsparcia Androida" (znajdujące się w menedżerze sdk) do wersji 46, która zawierała kilka bibliotek pomocy Alfa dla Androida O. Wróciłem do wersji 25 i problem został rozwiązany. Wygląda na to, że Android Studio 2.3 nadal opierało się na bibliotekach pomocniczych Alphy, powodując niedopasowanie zależności, które spowodowało awarię aplikacji.

+2

Hej, czy mógłbyś mi powiedzieć, jak powrócić do wersji 25? Mamy ten sam problem tutaj. - Z góry dziękuję –

10

napisać ten kod w pliku build.gradle w folderze app

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' 
      } 
     } 
    } 

ref z tym stackoverflow answer

Mam nadzieję, że to pomoże, szczęśliwy kodowania

+4

To rozwiązanie działa tylko wtedy, gdy nie mam problemu z przywróceniem wersji 25. Potrzebuję funkcji wyeksponowanych w wersji 26 (konkretnie czcionek w xml). Jak mogę użyć wersji 26, a także uniknąć tego błędu NoClassDef na AnimatorCompatHelper? Dzięki! – vm2000

8

można zmienić support wersji v7 lib do 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'` 

Mam nadzieję, że to ci pomoże

1

Po prostu wygeneruj "APK" zamiast natychmiastowego uruchomienia, i będzie działać idealnie.

0

Też miałem ten sam problem. Po polowaniu przez cały dzień nic nie znalazłem. Potem rano ze świeżym umysłem zrozumiałem, że moja jedna z niestandardowych bibliotek korzysta z funkcji java 8, a mój plik gradle modułu aplikacji nie włącza tego.

więc po prostu dodaje się następujący wiersz w build.gradle(Modeule:app) pliku, aby to działało:

compileOptions { 
     targetCompatibility 1.8 
     sourceCompatibility 1.8 
} 

Mam nadzieję, że pomaga innym też.

4

Używałem wersji 26.0.1 (w Androidzie 3.0 3.0 beta 2) biblioteki wsparcia miały wersję 47 i miałem ten sam problem. Co pracował dla mnie jest, aby usunąć/skomentować ten wiersz z wszystkich plików Gradle:

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

Następnie dodaje się następujący kod z „Er Pathak Harshal” komentarzu do dołu (moduł: aplikacji i module: Library) w budowie .gradle pliki:

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' 
      } 
     } 
    } 
} 

Proszę pamiętać, jeśli masz więcej niż 1 plików build.gradle czyli (moduł: biblioteka i module: yourapp) trzeba dodać, że kod w obu plikach, aby to działało.

+0

Doskonały, działa również dla mnie! –

0

Wygląda na to, że podstawową odpowiedzią jest konieczność naprawienia zależności projektu. Spróbuj skorzystać z najnowszych bibliotek wsparcia. (Ostatnie stabilne wersje pracowały dla mnie.)