Je crée une application avec le nouveau Material Design utilisé dans Android Lollipop (5.0).
J'utilise les guides suivants:
- http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
- http://antonioleiva.com/material-design-everywhere/
Après avoir créé ma barre d'outils, je reçois cette erreur: "Les classes suivantes n'ont pas pu être instanciées: - android.support.v7.widget.Toolbar"
L'application fonctionne bien dans le téléphone ou l'émulateur, mais le concepteur de mise en page d'Android Studio n'affiche pas correctement la mise en page.
Voici quelques images:
Erreur dans l'aperçu de la mise en page my_awesome_toolbar.xml
Erreur dans l'aperçu de la mise en page activity_my.xml
Le code xml des fichiers:
my_awesome_toolbar.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
activity_my.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root"
tools:context="com.myapp.test.MyActivity"
android:orientation="horizontal">
<include
android:id="@+id/toolbar"
layout="@layout/my_awesome_toolbar"
/>
<!-- Rest of layout -->
</RelativeLayout>
MyActivity.java:
package com.myapp.test;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
code xml des styles (valeurs / styles.xml):
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
</style>
<!-- Style Title -->
<style name="Title">
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">16sp</item>
</style>
<style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/overflow_icon</item>
</style>
</resources>
Pour le moment, j'utilise Android Studio Beta 0.8.9
Toolbar
rendu.Réponses:
Pour Android Studio (ou IntelliJ IDEA),
Si tout semble correct dans votre projet et que vous recevez toujours l'erreur dans toutes vos mises en page, essayez de «Invalider les caches et redémarrer».
Attendez qu'Android Studio ait terminé pour créer tous les caches et index.
la source
J'ai changé le fichier res / values / styles.xml de ceci:
pour ça:
et cela a résolu le problème.
la source
NoActionBar
dansBase
. À quoi sert le remplacementTheme.AppCompat.NoActionBar
?J'ai fait ce que @gbero a dit et j'ai changé le numéro de version Android que Studio utilise de 22 à 17 et cela fonctionne.
J'utilise la compatibilité ascendante pour construire pour Android ver 22 mais pour cibler 17 (idk si cela est correctement dit, j'essaie toujours de comprendre ce truc de l'application), ce qui a déclenché la compatibilité ascendante, ce qui est afaik
android.support.v7.*
. C'est probablement un bug avec leur code de rendu. Je ne sais pas si la suppression du cache comme suggéré ci-dessus était nécessaire car le rendu ne fonctionnait pas juste après l'invalidation du cache, il a commencé à fonctionner après avoir changé la version à rendre. Si je reviens à la version 22, le rendu s'arrête, si je repasse en 17, cela fonctionne à nouveau.la source
minSdkVersion
version est 17, je suggérerais d'exécuter l'application sur un émulateur avec le niveau API 17 ou un appareil réel avec le niveau API 17 et de confirmer si l'interface utilisateur ressemble à ce qui est attendu et non à ce qui est rendu dans Android StudioDe: https://stackoverflow.com/a/29989542/4123403
Cela a fait l'affaire pour moi.
la source
Une autre erreur qui peut avoir le même effet peut être le mauvais thème dans l'aperçu. Pour une raison quelconque, j'avais choisi un autre thème ici. Après avoir choisi mon AppTheme, cela a bien fonctionné à nouveau:
la source
Désolé si je me réponds, mais enfin, la solution de mon problème a été de mettre à jour Android Studio vers la nouvelle version 0.8.14 par Canary Channel: http://tools.android.com/recent/
Après la mise à jour, le problème a disparu:
Je laisse cette question ici à ceux qui auront ce problème à l'avenir.
la source
ça marche pour moi
la source
J'ai fait ce que @ang_lee a dit et j'ai également ajouté cette ligne au style de thème de l'application:
J'utilise la version 26.0.1:
outils de construction:
la source
<item name="windowNoTitle">true</item
J'ai eu la même erreur sur l'écran de mon Android Studio lorsque je voulais prévenir mon projet. Je résout le problème de cette manière:
1- Je change la version de 22 à 21. Mais si je reviens à la version 22, le rendu s'arrête, si je repasse en 21, ça marche à nouveau. Merci @Overloaded_Operator
J'ai mis à jour mon Android Studio mais ne fonctionne pas. Merci @ Salvuccio96
la source
rien de ce qui précède n'a fonctionné pour moi, j'ai mis à jour la version appCompat - v7 dans mon fichier gradle d'application de 23 à 25.3.1. aidé à le faire fonctionner pour moi
la source
Recherchez styles.xml dans le dossier app / res / values.
L'attribut parent du style peut manquer "Base". Cela devrait commencer comme
la source
J'ai eu la même erreur. Finalement, j'ai reçu cet avis qu'un plugin était obsolète:
Après la mise à jour, le problème a disparu.
la source
Les solutions ci-dessus ne m'ont pas aidé. J'ai essayé 2 premières étapes à partir de ce lien . A bien fonctionné pour moi. Mais n'oubliez pas de
au lieu de
dans votre MainActivity.java
la source
J'utilise Android Studio 2.3.3: - Ouvrez styles.xml - Android Studio affichera une notification en haut à droite avec deux options: "Ouvrir l'éditeur" et "Masquer la notification". - Cliquez sur "ouvrir l'éditeur" - Sous le menu déroulant du thème parent, cliquez sur afficher tous les thèmes - Sélectionnez un thème commençant par AppCompat ... (j'ai utilisé AppComat.DayNight)
NB: Si votre barre de titre disparaît, vous devez étendre AppCompatActivity au lieu d'Activité.
Bonne chance!
la source
J'ai eu le même problème pour l'une des activités de mon application, l'une des causes de ce problème est que le thème dans l'éditeur de thème peut être différent du thème défini dans le 'styles.xml'.changez le thème dans l'éditeur de thème à votre 'Apptheme' ou à votre thème personnalisé (si vous l'avez défini). Faire cela a résolu mon problème.
la source
Mon problème a également été résolu en changeant dans styles.xml
la source