Saya membuat aplikasi dengan Desain Material baru yang digunakan di Android Lollipop (5.0).
Saya menggunakan panduan berikut:
- http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
- http://antonioleiva.com/material-design-everywhere/
Setelah saya membuat toolbar, saya menerima error ini: "Class berikut tidak dapat dibuat: - android.support.v7.widget.Toolbar"
Aplikasi ini berfungsi dengan baik di ponsel atau emulator, tetapi desainer tata letak Android Studio tidak menampilkan tata letak dengan benar.
Berikut ini beberapa gambarnya:
Kesalahan dalam pratinjau tata letak my_awesome_toolbar.xml
Kesalahan dalam pratinjau tata letak activity_my.xml
Kode xml dari file:
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);
}
}
kode xml gaya (nilai / gaya.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>
Saat ini saya menggunakan Android Studio Beta 0.8.9
Toolbar
rendering.Jawaban:
Untuk Android Studio (atau IntelliJ IDEA),
Jika semuanya terlihat baik-baik saja dalam proyek Anda dan Anda masih menerima kesalahan di semua tata letak Anda, coba 'Memvalidasi cache & memulai ulang'.
Tunggu hingga Android Studio selesai membuat semua cache & indeks.
sumber
Saya mengubah file res / values / styles.xml dari ini:
untuk ini:
dan itu memecahkan masalah.
sumber
NoActionBar
diBase
. Penggantinya untuk apaTheme.AppCompat.NoActionBar
?Saya melakukan apa yang dikatakan @gbero, dan saya mengubah nomor versi Android yang digunakan Studio dari 22 menjadi 17 dan berhasil.
Saya menggunakan kompatibilitas mundur untuk membangun Android ver 22 tetapi untuk menargetkan 17 (idk jika itu dikatakan dengan benar, saya masih mencoba mencari tahu hal-hal aplikasi ini) sehingga memicu kompatibilitas mundur, yang afaik adalah apa adanya
android.support.v7.*
. Ini mungkin bug dengan kode rendering mereka. Tidak yakin apakah membersihkan cache seperti yang disarankan di atas diperlukan karena rendering tidak berfungsi tepat setelah membuat cache tidak valid, itu mulai berfungsi setelah saya mengubah versi untuk membuat. Jika saya mengubah kembali ke versi 22, rendering rusak, jika saya beralih kembali ke 17, itu berfungsi lagi.sumber
minSdkVersion
versinya 17, saya sarankan untuk menjalankan aplikasi pada emulator dengan API level 17 atau perangkat sebenarnya dengan API level 17 dan mengonfirmasi apakah UI terlihat seperti yang diharapkan dan bukan seperti yang dirender di Android StudioDari: https://stackoverflow.com/a/29989542/4123403
Ini melakukan trik untuk saya.
sumber
Kesalahan lain yang dapat memiliki efek yang sama adalah tema yang salah di pratinjau. Untuk beberapa alasan saya telah memilih beberapa tema lain di sini. Setelah memilih AppTheme saya, itu berfungsi dengan baik lagi:
sumber
Maaf jika saya menjawab sendiri, tetapi, pada akhirnya, solusi masalah saya adalah memperbarui Android Studio ke versi baru 0.8.14 oleh Canary Channel: http://tools.android.com/recent/
Setelah pembaruan, masalahnya hilang:
Saya tinggalkan pertanyaan ini di sini bagi mereka yang memiliki masalah ini di masa mendatang.
sumber
itu berhasil untuk saya
sumber
Saya melakukan apa yang dikatakan @ang_lee dan juga saya menambahkan baris ini ke gaya tema aplikasi:
saya menggunakan versi 26.0.1:
alat bangunan:
sumber
<item name="windowNoTitle">true</item
Saya mengalami kesalahan yang sama pada layar Android Studio saya ketika saya ingin memenangkan proyek saya. Saya memperbaiki masalah dengan cara ini:
1- Saya mengubah versi dari 22 menjadi 21. Tetapi jika saya mengubah kembali ke versi 22, rendering rusak, jika saya beralih kembali ke 21, ini berfungsi lagi. Terima kasih @Overloaded_Operator
Saya memperbarui Android Studio saya tetapi tidak berfungsi. Terima kasih @ Salvuccio96
sumber
tidak satu pun di atas berfungsi untuk saya, saya memperbarui versi appCompat - v7 di file gradle aplikasi saya dari 23 menjadi 25.3.1. membantu membuatnya berhasil untuk saya
sumber
Temukan styles.xml di folder app / res / values.
Atribut induk gaya mungkin tidak memiliki "Basis". Ini harus dimulai sebagai
sumber
Saya mengalami kesalahan yang sama. Akhirnya saya mendapat pemberitahuan ini bahwa plugin sudah ketinggalan zaman:
Setelah saya perbarui, masalahnya hilang.
sumber
Solusi di atas tidak membantu saya. Saya sudah mencoba 2 langkah pertama dari tautan ini . Bekerja dengan baik untuk saya. Tapi jangan lupa
dari pada
di MainActivity.java Anda
sumber
Saya menggunakan android studio 2.3.3: - Open styles.xml - Android studio akan menampilkan notifikasi di kanan atas dengan dua pilihan: "open editor" dan "Hide notification". - Klik "editor terbuka" - Di bawah tarik-turun orang tua tema, klik tampilkan semua tema - Pilih tema apa pun yang dimulai dengan AppCompat ... (Saya menggunakan AppComat.DayNight)
NB: Jika bilah judul Anda menghilang, Anda perlu memperluas AppCompatActivity sebagai ganti Activity.
Semua yang terbaik!
sumber
Saya memiliki masalah yang sama untuk salah satu aktivitas di aplikasi saya, salah satu penyebab masalah ini adalah Tema di editor tema mungkin berbeda dari tema yang ditentukan di 'styles.xml'. Ubah Tema di editor tema ke 'Apptheme' Anda atau tema yang ditentukan kustom Anda (jika Anda telah menentukan). Melakukan ini memperbaiki masalah saya.
sumber
Masalah Saya juga telah diatasi dengan mengubah styles.xml
sumber