web-dev-qa-db-fra.com

Erreur lors du gonflement de la classe Android.support.design.widget.CoordinatorLayout et ClassNotFoundException: Android.support.design.R $ styleable

Je développe une application qui a un onglet avec une fonctionnalité de balayage. J'utilise Eclipse pour développer. J'ai importé le support design library en tant que bibliothèque via la propriété. Pendant la course, je reçois toujours cette erreur "Error inflating class Android.support.design.widget.CoordinatorLayout ".

  1. J'ai d'abord ajouté Android support design.jar et essayé, qui ne fonctionne pas
  2. J'ai ajouté le class.jar fichier de support design library à Java build path qui n'est pas travaillé
  3. Enfin, j'ai importé le support design library comme bibliothèque à l'aide de Properties->Android->Add Library cela ne fonctionne pas non plus
  4. J'utilise le thème Parent comme "Theme.AppCompat.Light.DarkActionBar "

"<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> "

  1. J'étend le AppCompatActivity, voir mon MainActivity.Java

    package com.example.scrollingtab.activity;

    import Android.support.v7.app.AppCompatActivity;
    import Android.support.v7.widget.Toolbar;
    import Android.widget.Button;
    import com.example.scrollingtab.R;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Toolbar toolbar;
        private Button btnSimpleTabs, btnScrollableTabs, btnIconTextTabs, btnIconTabs, btnCustomIconTextTabs;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            btnSimpleTabs = (Button) findViewById(R.id.btnSimpleTabs);
    
            btnSimpleTabs.setOnClickListener(this);
    
        }
    

Voici la trace complète de la pile:

FATAL EXCEPTION: main
Process: com.example.scrollingtab, PID: 1348
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.scrollingtab/com.example.scrollingtab.activity.MainActivity}: Android.view.InflateException: Binary XML file line #1: Error inflating class Android.support.design.widget.CoordinatorLayout
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2325)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2390)
at Android.app.ActivityThread.access$800(ActivityThread.Java:151)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1303)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5257)
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:903)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698)
Caused by: Android.view.InflateException: Binary XML file line #1: Error inflating class Android.support.design.widget.CoordinatorLayout
at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743)
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 Android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.Java:257)
at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:109)
at com.example.scrollingtab.activity.MainActivity.onCreate(MainActivity.Java:20)
at Android.app.Activity.performCreate(Activity.Java:5990)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1106)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2278)
Caused by: Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Constructor.newInstance(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:288)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:607)
Caused by: Java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/design/R$styleable;
at Android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.Java:171)
at Android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.Java:165)
Caused by: Java.lang.ClassNotFoundException: Didn't find class "Android.support.design.R$styleable" on path: DexPathList[[Zip file "/data/app/com.example.scrollingtab-2/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)
Suppressed: Java.lang.ClassNotFoundException: Android.support.design.R$styleable
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)
Caused by: Java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

J'ai essayé la plupart des choses parlées et fournies par SO. Je ne parviens toujours pas à retracer ce qui ne va pas dans mon programme.

Besoin d'aide pour résoudre ce problème.

Merci

12
user2681579

Pour moi, cette erreur résultait de l'utilisation de certaines bibliothèques androidx mais en conservant l'ancienne disposition des coordonnées dans certaines layout.xml des dossiers.

build.gradle:

com.Android.support:coordinatorlayout -> androidx.coordinatorlayout:coordinatorlayout:1.0.0-alpha1

Si vous utilisez androidx, c'est peut-être aussi votre problème. J'ai dû mettre à jour l'autre v7 des bibliothèques comme Toolbar également.

Voir le guide de migration androidx ici: https://developer.Android.com/topic/libraries/support-library/refactor

20
Mikeumus

Pour Android studio, essayez d'ajouter ces dépendances

compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
17
Radoslav

J'ai eu cette erreur lors de la migration vers AndroidX

Pour résoudre, j'ai fait:

  1. comme suggéré par @Mikeumus - et ajouté ceci aux dépendances build.gradle du module:

    implémentation 'androidx.coordinatorlayout: coordinatorlayout: latest.version.here'

  2. archivez le fichier XML de mise en page (la mise en page que vous essayez de lancer avec setContentView

si la mise en page contient: <Android.support.design.widget.CoordinatorLayout ...

remplacez-le par: <androidx.coordinatorlayout.widget.CoordinatorLayout

  1. dans le même fichier de mise en page - remplacez la balise de fermeture

</Android.support.design.widget.CoordinatorLayout>

avec

</androidx.coordinatorlayout.widget.CoordinatorLayout>

15
Dror

J'ai trouvé la solution pour Eclipse

Le problème auquel j'ai été confronté est que le fichier R.Java N'est pas généré sous support.design dans le dossier gen /.

Après avoir effectué les étapes ci-dessous, le fichier R.Java Est généré. Le problème principal est conception la bibliothèque est ciblée à 22. Le passage à 23 a fonctionné.

  1. Importer bibliothèque de conception de support de \sdk\extras\Android\support\design Vers l'espace de travail Eclipse.

  2. Ouvrez project.properties Of AppCompat and design Library and target it to 2

  3. Nettoyez Appcompat, design and YourProject.

  4. Exécutez l'application

3
user2681579

Assurez-vous que dans votre thème de jeu d'activités AppCompat

<activity
            Android:name=".newApp.screens.main.MainActivity"
            Android:label="@string/title_activity_main_launch"
            Android:theme="@style/AppThemes"></activity>

  <!-- Base application theme. -->
<style name="AppThemes" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>
</style>
0
Dmitriy Melekhov