web-dev-qa-db-fra.com

AppCompatDelegate Impossible d'instancier l'inflater de vue personnalisé Android.support.v7.app.AppCompatViewInflater

Lorsque je reçois la version apk, je reçois ce journal des erreurs dans toutes les activités de l'application 

04-03 17:10:54.105 26527-26527/? I/AppCompatDelegate: Failed to instantiate custom view inflater Android.support.v7.app.AppCompatViewInflater. Falling back to default.
            Java.lang.ClassNotFoundException: Android.support.v7.app.AppCompatViewInflater
              at Java.lang.Class.classForName(Native Method)
              at Java.lang.Class.forName(Class.Java:309)
              at Java.lang.Class.forName(Class.Java:273)
              at Android.support.v7.app.j.b(AppCompatDelegateImplV9.Java:1014)
              at Android.support.v7.app.j.onCreateView(AppCompatDelegateImplV9.Java:1092)
              at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:725)
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:482)
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
              at com.Android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.Java:3605)
              at com.Android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.Java:3677)
              at com.Android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.Java:1943)
              at Android.support.v7.app.j.x(AppCompatDelegateImplV9.Java:374)
              at Android.support.v7.app.j.w(AppCompatDelegateImplV9.Java:323)
              at Android.support.v7.app.j.b(AppCompatDelegateImplV9.Java:284)
              at Android.support.v7.app.c.setContentView(AppCompatActivity.Java:139)
              at com.myapp.example.MainActivity.I(MainActivity.Java:1523)
              at com.myapp.example.MainActivity.onCreate(MainActivity.Java:358)
              at Android.app.Activity.performCreate(Activity.Java:6010)
              at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1129)
              at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2292)
              at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2413)
              at Android.app.ActivityThread.access$800(ActivityThread.Java:155)
              at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1317)
              at Android.os.Handler.dispatchMessage(Handler.Java:102)
              at Android.os.Looper.loop(Looper.Java:135)
              at Android.app.ActivityThread.main(ActivityThread.Java:5343)
              at Java.lang.reflect.Method.invoke(Native Method)
              at Java.lang.reflect.Method.invoke(Method.Java:372)
              at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:905)
              at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:700)
            Caused by: Java.lang.ClassNotFoundException: Didn't find class "Android.support.v7.app.AppCompatViewInflater" on path: DexPathList[[Zip file "/data/app/com.myapp.example-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
              at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
              at Java.lang.ClassLoader.loadClass(ClassLoader.Java:511)
              at Java.lang.ClassLoader.loadClass(ClassLoader.Java:469)
              at Java.lang.Class.classForName(Native Method) 
              at Java.lang.Class.forName(Class.Java:309) 
              at Java.lang.Class.forName(Class.Java:273) 
              at Android.support.v7.app.j.b(AppCompatDelegateImplV9.Java:1014) 
              at Android.support.v7.app.j.onCreateView(AppCompatDelegateImplV9.Java:1092) 
              at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:725) 
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:482) 
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414) 
              at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365) 
              at com.Android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.Java:3605) 
              at com.Android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.Java:3677) 
              at com.Android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.Java:1943) 
              at Android.support.v7.app.j.x(AppCompatDelegateImplV9.Java:374) 
              at Android.support.v7.app.j.w(AppCompatDelegateImplV9.Java:323) 
              at Android.support.v7.app.j.b(AppCompatDelegateImplV9.Java:284) 
              at Android.support.v7.app.c.setContentView(AppCompatActivity.Java:139) 
              at com.myapp.example.MainActivity.I(MainActivity.Java:1523) 
              at com.myapp.example.MainActivity.onCreate(MainActivity.Java:358) 
              at Android.app.Activity.performCreate(Activity.Java:6010) 
              at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1129) 
              at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2292) 
              at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2413) 
              at Android.app.ActivityThread.access$800(ActivityThread.Java:155) 
              at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1317) 
              at Android.os.Handler.dispatchMessage(Handler.Java:102) 
              at Android.os.Looper.loop(Looper.Java:135) 
              at Android.app.ActivityThread.main(ActivityThread.Java:5343) 
              at Java.lang.reflect.Method.invoke(Native Method) 
              at Java.lang.reflect.Method.invoke(Method.Java:372) 
              at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:905) 
              at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:700) 
            Suppressed: Java.lang.ClassNotFoundException: Android.support.v7.app.AppCompatViewInflater
              at Java.lang.Class.classForName(Native Method)
              at Java.lang.BootClassLoader.findClass(ClassLoader.Java:781)
              at Java.lang.BootClassLoader.loadClass(ClassLoader.Java:841)
              at Java.lang.ClassLoader.loadClass(ClassLoader.Java:504)
                  ... 32 more
            Caused by: Java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

App Gradle Configuration est donnée ci-dessous:

  • compileSdkVersion 27, 
  • buildToolsVersion "25.0.3"
  • minSdkVersion 16,
  • targetSdkVersion 24
  • support_library_version = '27 .1.0 ',
  • google_play_services_version = '12 .0.1 '**

Remarque: je reçois cette erreur uniquement dans la version finale et non dans la version de débogage.

Je vous remercie.

5
Sarath Kumar

Écrire des règles Pro Guard:

-dontwarn Android.support.v7.** -keep class Android.support.v7.** { *; } -keep interface Android.support.v7.** { *; }

4
Sameer Jani

Il semble qu'il s'agisse d'un bogue avec appcompat-v727.1.0: https://issuetracker.google.com/issues/74289571

27 mars 2018 07h49

L'équipe de développement a résolu le problème que vous avez signalé et celui-ci sera disponible dans une version ultérieure.

Vous pouvez mettre à jour une version plus récente des bibliothèques de support (si ce correctif a déjà été publié) ou rétrograder à la version précédente où ce bogue n'existait pas: 27.0.2.

4
Thorbear

Vous devez utiliser la même version pour compileSdkVersion, buildToolsVersion, targetSdkVersion et support library Donc, vous devez utiliser la version 27 :

  • compileSdkVersion 27

  • buildToolsVersion "27.0.3"

  • targetSdkVersion 27

  • support_library_version = '27 .1.0 '

Je pense qu'ils ont corrigé cela en 27.1.1.

compileSdkVersion 27
buildToolsVersion '27.0.3'
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
implementation 'com.Android.support:cardview-v7:27.1.1'
0
JPM