web-dev-qa-db-fra.com

Android Studio 3.1 ne rend pas le fichier xml en raison de l'absence d'une classe Java

Me montre toujours l'erreur dans les massages 

Java.lang.ClassNotFoundException: Android.view.View $ OnUnhandledKeyEventListener

Mon projet est littéralement bonjour le monde et je viens d'ouvrir des studios Android et de cliquer sur l'activité vide, puis d'attendre la fin de la construction, mais cela ne rend pas l'application . mais ça ne marche pas. le projet montre bien dans le périphérique virtuel et je peux même éditer bonjour le monde à n'importe quelle chaîne, mais en mode XML, il montre juste un écran blanc

Screen shot of project hello world!.

voici la pile:

Java.lang.ClassNotFoundException: Android.view.View$OnUnhandledKeyEventListener
    at org.jetbrains.Android.uipreview.ModuleClassLoader.load(ModuleClassLoader.Java:180)
    at com.Android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.Java:61)
    at org.jetbrains.Android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.Java:118)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
    at org.jetbrains.Android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.Java:213)
    at Android.support.v7.widget.ActionBarContainer.<init>(ActionBarContainer.Java:62)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
    at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
    at org.jetbrains.Android.uipreview.ViewLoader.createNewInstance(ViewLoader.Java:481)
    at org.jetbrains.Android.uipreview.ViewLoader.loadClass(ViewLoader.Java:264)
    at org.jetbrains.Android.uipreview.ViewLoader.loadView(ViewLoader.Java:222)
    at com.Android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.Java:209)
    at Android.view.BridgeInflater.loadCustomView(BridgeInflater.Java:337)
    at Android.view.BridgeInflater.loadCustomView(BridgeInflater.Java:348)
    at Android.view.BridgeInflater.createViewFromTag(BridgeInflater.Java:248)
    at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:730)
    at Android.view.LayoutInflater.rInflate_Original(LayoutInflater.Java:863)
    at Android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.Java:72)
    at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:837)
    at Android.view.LayoutInflater.rInflateChildren(LayoutInflater.Java:824)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:515)
    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:423)
    at com.Android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.Java:89)
    at com.Android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.Java:68)
    at com.Android.layoutlib.bridge.impl.Layout.createActionBar(Layout.Java:277)
    at com.Android.layoutlib.bridge.impl.Layout.<init>(Layout.Java:161)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.Java:288)
    at com.Android.layoutlib.bridge.Bridge.createSession(Bridge.Java:384)
    at com.Android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.Java:193)
    at com.Android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.Java:544)
    at com.Android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.Java:678)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)
10
Parsa Mahmoodi

Oui, ça arrive. Vous pouvez le réparer facilement.

Première méthode: Ouvrez build.gradle (Module: app) sous Scripts Gradle et remplacez la version alpha3 par alpha1 et Sync maintenant.

implémentation 'com.Android.support:appcompat-v7:28.0.0-alpha1'

Deuxième méthode: Ouvrez style.xml sous res -> valeurs -> style.xml et modifiez cette ligne. 

style name = "AppTheme" parent = "Theme.AppCompat.Light.DarkActionBar">

mettre Base. avant Theme.AppCompat.Light.DarkActionBar comme

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

J'espère que le problème sera résolu.

35
Robin

- Utilisez Alpha/Beta à vos risques et périls

  • Vous développez une application, vous ne voulez donc pas faire face à ce type de problèmes. Donc, je vous suggère d'utiliser toujours une version stable de chaque dépendance. 

Le problème que vous avez rencontré est dû à l'utilisation de la version alpha de la bibliothèque AppCompat. Utilisez la version stable pour vous débarrasser de ce problème maintenant et à l'avenir.

1. Utilisez la version stable Android.support

Actuellement, 27.1.1 est la dernière version de AppComactV7. Vous pouvez voir le lien Maven Repo pour connaître les dernières informations. 

final def SUPPORT_VERSION = "27.1.1"
implementation "com.Android.support:appcompat-v7:$SUPPORT_VERSION"
implementation "com.Android.support:design:$SUPPORT_VERSION" // use only if already using

J'utilise des définitions pour avoir la même version pour toutes les versions de support. Ignorez également la bibliothèque de conception si vous ne l'utilisez pas déjà.

2. Rétrograder compileSdkVersion et targetSdkVersion (facultatif)

Vous devez également rétrograder compileSdkVersion & targetSdkVersion pour supprimer certains avertissements de gradle.

alors utilisez les versions ci-dessous

compileSdkVersion 27 
targetSdkVersion 27

Lisez à propos de Les versions Alpha & Beta .

3
Khemraj

Aller à
Gradle scripts> build.gradle (module app)> changer 'com.Android.support:appcompat-v7:28.0.0-alpha3' en 'com.Android.support:appcompat-v7:28.0.0-alpha1'

Vous pouvez avoir autre chose que alpha3 après "-v7: 28.0.0-" quoi que ce soit, changez-le en alpha1.

2
Jacqueline

Vous pouvez le réparer facilement.

Ouvrez build.gradle (Module: app) sous Gradle Scripts et mettez à jour la version de appcompat comme indiqué ci-dessous et synchronisez maintenant.

implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
0
Ali Yar Khan