web-dev-qa-db-fra.com

android.view.View $ OnUnhandledKeyEventListener

Je suis nouveau dans Android Studio et je ne comprends pas pourquoi ma barre d'outils ne s'affiche pas comme décrit par https://developer.Android.com/training/appbar/setting-up Je sais qu'il y a déjà d'autres questions comme la mienne sur stackoverflow mais elles ne fonctionnent pas dans mon projet. Par conséquent, je serais très reconnaissant pour résoudre ce problème. Capture d'écran:

Screenshot

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.ViewUtils.isLayoutRtl(ViewUtils.Java:58)
at Android.support.v7.widget.Toolbar.onMeasure_Original(Toolbar.Java:1578)
at Android.support.v7.widget.Toolbar.onMeasure(Toolbar.Java)
at Android.view.View.measure_Original(View.Java:22071)
at Android.view.View_Delegate.measure(View_Delegate.Java:80)
at Android.view.View.measure(View.Java:22035)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:6602)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:185)
at Android.view.View.measure_Original(View.Java:22071)
at Android.view.View_Delegate.measure(View_Delegate.Java:80)
at Android.view.View.measure(View.Java:22035)
at Android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.Java:715)
at Android.widget.RelativeLayout.onMeasure(RelativeLayout.Java:461)
at Android.view.View.measure_Original(View.Java:22071)
at Android.view.View_Delegate.measure(View_Delegate.Java:80)
at Android.view.View.measure(View.Java:22035)
at com.Android.layoutlib.bridge.impl.RenderSessionImpl.measureView(RenderSessionImpl.Java:590)
at com.Android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.Java:343)
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)

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/colorPrimaryDark">

</Android.support.v7.widget.Toolbar>

build.gradle (niveau de l'application)

apply plugin: 'com.Android.application'
Android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.david.gamebase"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.Android.support:appcompat-v7:28.0.0-rc01'
    implementation 'com.Android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.google.firebase:firebase-auth:11.6.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.Android.support.test:runner:1.0.2'
    androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

style.xml:

   <resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

## toolbar.xml ##

    <?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/colorPrimaryDark">

</Android.support.v7.widget.Toolbar>
33
David Schmidt

Apportez les modifications dans votre build.gradle (niveau de l'application) pour rétrograder à la version 27 comme ci-dessous. Ensuite, synchronisez et construisez le projet. J'espère que ça va régler le problème.

compileSdkVersion 27

targetSdkVersion 27

implementation 'com.Android.support:appcompat-v7:27.1.1'
10
ArindamC

Comme mentionné par documentation , premièrement, votre Activity devrait être étendu de AppCompatActivity().

Deuxièmement, dans votre projet styles, Base.Theme.AppCompat.Light.DarkActionBar est défini, ce qui signifie qu'il a un DarkActionBar mais que vous avez déjà un Toolbar dans votre layout. Alors, simplement, changez:

Base.Theme.AppCompat.Light.DarkActionBar

à:

Theme.AppCompat.Light.NoActionBar

Ensuite, (côté Java-kotlin) , configurez la Toolbar:

// Note that the Toolbar defined in the layout has the id "my_toolbar"
    setSupportActionBar(findViewById(R.id.my_toolbar))

Et donnez à la Toolbar un identifiant.

<Android.support.v7.widget.Toolbar
   Android:id="@+id/my_toolbar"
   Android:layout_width="match_parent"
   Android:layout_height="?attr/actionBarSize"
   Android:background="?attr/colorPrimary"
   Android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Ensuite, vous devriez être prêt à partir.

5
ʍѳђઽ૯ท

Ce n'est pas une erreur mais un avertissement, il peut être ignoré par l'ajout du code suivant dans mon build.gradle (niveau de l'application), le fichier fonctionne dans mon Cas. Ensuite, synchronisez et construisez le projet. Espérons que cela corrige le problème.

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

référence à la substance

1
Pratap Sharma

https://github.com/DonaldDu/FixUnhandledEvent

Android.view.View $ OnUnhandledKeyEventListener est ajouté dans api28.

Si le périphérique d'exécution est inférieur à 28, vous ne pouvez pas trouver la classe, mais vous exécutez sans erreur fatale.

Nous pouvons injecter la classe en mode débogage pour ignorer le message d'erreur.

implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//inject class when api<28 && debug==true
debugImplementation 'com.github.DonaldDu:FixUnhandledEvent:1.0'
0
Donald Du

Ajoutez la bibliothèque de support multidex à vos dépendances

com.Android.support:multidex:1.0.3
0
Daniel

Il y a un problème avec la bibliothèque ~ -v7: 28.0.0. Il existe deux solutions: vous pouvez télécharger compile et targetSdkVersion à 27 ou mettre à niveau Android Studio vers la dernière version (3.2.x plus récente).

0
Junior Frogie