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:
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)
<?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>
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'
<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>
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'
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.
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.+"
}
}
}
}
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'
Ajoutez la bibliothèque de support multidex à vos dépendances
com.Android.support:multidex:1.0.3
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).