Ich erstelle eine App mit dem neuen Materialdesign, das in Android Lollipop (5.0) verwendet wird.
Ich verwende folgende Handbücher:
Nachdem ich meine Symbolleiste erstellt habe, erhalte ich folgende Fehlermeldung: "Die folgenden Klassen konnten nicht instanziiert werden: - Android.support.v7.widget.Toolbar"
Die App funktioniert gut im Telefon oder im Emulator, aber der Layout-Designer von Android Studio zeigt das Layout nicht richtig an.
Hier gibt es einige Bilder:
Fehler in der Layoutvorschau für my_awesome_toolbar.xml
Fehler in der Layoutvorschau von activity_my.xml
Der XML-Code der Dateien:
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);
}
}
xML-Code der Stile (values / 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>
Im Moment verwende ich Android Studio Beta 0.8.9
Für Android Studio (oder IntelliJ IDEA)
Wenn in Ihrem Projekt alles in Ordnung ist und Sie immer noch den Fehler in allen Layouts erhalten, versuchen Sie "Caches ungültig machen und neu starten".
Warten Sie, bis Android Studio fertiggestellt ist, um alle Caches und Indizes zu erstellen.
Ich habe die Datei res/values / styles.xml folgendermaßen geändert:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
zu diesem:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
und das hat das Problem gelöst.
Ich habe getan, was @gbero gesagt hat, und ich habe die Android-Versionsnummer, die Studio verwendet, von 22 auf 17 geändert und es funktioniert.
Ich verwende die Rückwärtskompatibilität, um für Android ver 22 zu bauen, aber um 17 anzusprechen (idk, wenn das richtig gesagt ist, ich versuche immer noch, diese App ausfindig zu machen), so dass die Rückwärtskompatibilität ausgelöst wird, was afaik der Android.support.v7.*
ist. Dies ist wahrscheinlich ein Fehler mit ihrem Rendering-Code. Ich war mir nicht sicher, ob das Löschen des Cache wie oben beschrieben erforderlich war, da das Rendern direkt nach dem Ungültigmachen des Caches nicht funktioniert hat. Nachdem ich die Version geändert hatte, funktionierte es. Wenn ich wieder auf Version 22 wechsle, bricht das Rendering ab, wenn ich wieder auf 17 umstelle, funktioniert es wieder.
Von: https://stackoverflow.com/a/29989542/4123403
Das hat den Trick für mich gemacht.
Tut mir leid, wenn ich mich selbst antworte, aber schließlich war die Lösung meines Problems das Update von Android Studio auf die neue Version 0.8.14 von Canary Channel: http://tools.Android.com/recent/
Nach dem Update ist das Problem weg:
Ich lasse diese Frage hier für diejenigen, die dieses Problem in der Zukunft haben.
Ich habe getan, was @ang_lee sagte, und ich habe diese Zeile zum App-Theme-Stil hinzugefügt:
<item name="windowActionBar">false</item>
ich verwende Version 26.0.1:
com.Android.support:design:26.0.1
com.Android.support:appcompat-v7:26.0.1
bauwerkzeuge:
buildToolsVersion "26.0.1"
es funktioniert für mich
Ich hatte den gleichen Fehler auf meinem Android Studio-Bildschirm, als ich mein Projekt zuvor anzeigen wollte. Ich behebe das Problem auf diese Weise:
1- Ich ändere die Version von 22 auf 21. Wenn ich jedoch auf Version 22 zurücksteige, bricht das Rendering, wenn ich wieder auf 21 wechsle, funktioniert es wieder. Vielen Dank @ Overloaded_Operator
Ich habe mein Android Studio aktualisiert, funktioniert aber nicht. Vielen Dank @ Salvuccio96
ich habe die appCompat - v7 - Version in meiner Graduate - Datei von 23 auf 25.3.1 aktualisiert. hat geholfen, dass es für mich funktioniert
Suchen Sie die Datei styles.xml im Ordner app/res/values.
Das übergeordnete Attribut des Stils könnte "Base" ..__ fehlen. Es sollte als beginnen
<style name="AppTheme" parent="Base.Theme.AppCompat...
Die obigen Lösungen haben mir nicht geholfen. Ich habe 2 erste Schritte aus diesem Link . Ausprobiert. Aber vergessen Sie nicht zu
import com.melnykov.fab.FloatingActionButton;
anstatt
import Android.support.design.widget.FloatingActionButton;
in Ihrer MainActivity.Java
Mein Problem wurde auch durch das Ändern von styles.xml gelöst
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
Ich hatte das gleiche Problem für eine der Aktivitäten in meiner App. Eine der Ursachen für dieses Problem ist, dass sich das Thema im Designeditor möglicherweise von dem in der 'styles.xml' definierten Thema unterscheidet. Wechseln Sie das Design im Designeditor zu Ihrem 'Apptheme' oder zu Ihrem benutzerdefinierten Thema (falls Sie es definiert haben). Dadurch wurde mein Problem behoben.
Ich benutze Android Studio 2.3.3: - Open styles.xml - Das Android Studio zeigt oben rechts eine Benachrichtigung mit zwei Optionen: "Editor öffnen" und "Benachrichtigung ausblenden" .- Klicken " Editor öffnen "- Klicken Sie unter" Übergeordnetes Design "auf" Alle Designs anzeigen "- Wählen Sie ein beliebiges Design aus, das mit AppCompat beginnt ... (Ich habe AppComat.DayNight verwendet)
Hinweis: Wenn Ihre Titelleiste nicht mehr angezeigt wird, müssen Sie AppCompatActivity anstelle von Activity erweitern.
Alles Gute!