Ich erstelle eine App mit dem neuen Material Design, das in Android Lollipop (5.0) verwendet wird.
Ich benutze die folgenden Anleitungen:
- http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
- http://antonioleiva.com/material-design-everywhere/
Nachdem ich meine Symbolleiste erstellt habe, wird folgende Fehlermeldung angezeigt: "Die folgenden Klassen konnten nicht instanziiert werden: - android.support.v7.widget.Toolbar"
Die App funktioniert gut im Telefon oder Emulator, aber der Layout-Designer von Android Studio zeigt das Layout nicht richtig an.
Hier gibt es einige Bilder:
Fehler in der Layoutvorschau von 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 benutze ich Android Studio Beta 0.8.9
Toolbar
Rendern.Antworten:
Für Android Studio (oder IntelliJ IDEA)
Wenn in Ihrem Projekt alles in Ordnung aussieht und Sie immer noch den Fehler in all Ihren Layouts erhalten, versuchen Sie, "Caches ungültig zu machen und neu zu starten".
Warten Sie, bis Android Studio alle Caches und Indizes erstellt hat.
quelle
Ich habe die Datei res / values / styles.xml folgendermaßen geändert:
dazu:
und das löste das Problem.
quelle
NoActionBar
inBase
. Wofür ist der ErsatzTheme.AppCompat.NoActionBar
?Ich habe getan, was @gbero gesagt hat, und ich habe die von Studio verwendete Android-Versionsnummer von 22 auf 17 geändert und es funktioniert.
Ich verwende die Abwärtskompatibilität, um für Android Version 22 zu erstellen, aber um Ziel 17 zu erreichen (idk, wenn das richtig gesagt ist, versuche ich immer noch, dieses App-Zeug herauszufinden), so dass die Abwärtskompatibilität ausgelöst wurde, was afaik ist, was das
android.support.v7.*
ist. Dies ist wahrscheinlich ein Fehler mit ihrem Rendering-Code. Ich bin mir nicht sicher, ob das Löschen des Caches wie oben vorgeschlagen erforderlich ist, da das Rendern unmittelbar nach dem Ungültigmachen des Caches nicht funktioniert hat. Es hat funktioniert, nachdem ich die Version zum Rendern geändert habe. Wenn ich zurück zu Version 22 wechsle, bricht das Rendering ab, wenn ich zurück zu 17 wechsle, funktioniert es wieder.quelle
minSdkVersion
Version 17 ist, würde ich vorschlagen, die App auf einem Emulator mit API-Level 17 oder einem tatsächlichen Gerät mit API-Level 17 auszuführen und zu bestätigen, ob die Benutzeroberfläche wie erwartet aussieht und nicht wie in Android Studio gerendertVon: https://stackoverflow.com/a/29989542/4123403
Das hat den Trick für mich getan.
quelle
Ein weiterer Fehler, der den gleichen Effekt haben kann, kann das falsche Thema in der Vorschau sein. Aus irgendeinem Grund hatte ich hier ein anderes Thema ausgewählt. Nach der Auswahl meines AppTheme hat es wieder gut funktioniert:
quelle
Es tut mir leid, wenn ich mir selbst antworte, aber schließlich bestand die Lösung meines Problems darin, Android Studio von Canary Channel auf die neue Version 0.8.14 zu aktualisieren: http://tools.android.com/recent/
Nach dem Update ist das Problem behoben:
Ich lasse diese Frage hier für diejenigen, die dieses Problem in Zukunft haben.
quelle
es funktioniert für mich
quelle
Ich habe getan, was @ang_lee gesagt hat, und diese Zeile zum Stil des App-Themas hinzugefügt:
Ich benutze Version 26.0.1:
Bauwerkzeuge:
quelle
<item name="windowNoTitle">true</item
Ich hatte den gleichen Fehler auf meinem Android Studio-Bildschirm, als ich mein Projekt vorbereiten wollte. Ich behebe das Problem folgendermaßen:
1- Ich ändere die Version von 22 auf 21. Wenn ich jedoch wieder auf Version 22 wechsle, wird das Rendering unterbrochen. Wenn ich wieder auf 21 wechsle, funktioniert es wieder. Vielen Dank, dass Sie @Overloaded_Operator
Ich habe mein Android Studio aktualisiert, aber es funktioniert nicht. Vielen Dank an Salvuccio96
quelle
Keiner der oben genannten Punkte hat bei mir funktioniert. Ich habe die appCompat - v7 - Version in meiner App gradle - Datei von 23 auf 25.3.1 aktualisiert. hat geholfen, dass es für mich funktioniert
quelle
Suchen Sie die Datei styles.xml im Ordner app / res / values.
Das übergeordnete Attribut des Stils könnte "Base" fehlen. Es sollte als beginnen
quelle
Ich hatte den gleichen Fehler. Irgendwann bekam ich den Hinweis, dass ein Plugin veraltet war:
Nachdem ich aktualisiert habe, ist das Problem behoben.
quelle
Die obigen Lösungen haben mir nicht geholfen. Ich habe 2 erste Schritte von diesem Link versucht . Hat gut für mich funktioniert. Aber vergiss es nicht
anstatt
in Ihrer MainActivity.java
quelle
Ich benutze Android Studio 2.3.3: - Open styles.xml - Android Studio zeigt oben rechts eine Benachrichtigung mit zwei Optionen an: "Editor öffnen" und "Benachrichtigung ausblenden". - Klicken Sie auf "Editor öffnen". - Klicken Sie unter "Übergeordnetes Thema" auf "Alle Themen anzeigen". - Wählen Sie ein beliebiges Thema aus, das mit AppCompat beginnt. (Ich habe AppComat.DayNight verwendet.)
NB: Wenn Ihre Titelleiste verschwindet, müssen Sie AppCompatActivity anstelle von Activity erweitern.
Alles Gute!
quelle
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 Themeneditor möglicherweise von dem in der Datei 'styles.xml' definierten Thema unterscheidet. Ändern Sie das Thema im Themeneditor zu Ihrem 'Apptheme' oder Ihrem benutzerdefinierten Thema (falls Sie es definiert haben). Dadurch wurde mein Problem behoben.
quelle
Mein Problem wurde auch durch Ändern in styles.xml gelöst
quelle