Error in styles_base.xml file - android app - No resource found that matches the given name 'android:Widget.Material.ActionButto
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/26530415/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Error in styles_base.xml file - android app - No resource found that matches the given name 'android:Widget.Material.ActionButton'
提问by divinesense
Ok, so im a beginner in android development and I just created the hello world app. But it's giving me errors in styles_base.xml
file of appcompat_v7
library.
Ok, so im a beginner in android development and I just created the hello world app. But it's giving me errors in styles_base.xml
file of appcompat_v7
library.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'. styles_base.xml /appcompat_v7/res/values-v21
AAPT Problem
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'. styles_base.xml /appcompat_v7/res/values-v21
AAPT Problem
How do i take care of this error? Also why is the appcompat_v7 library being used when I don't want it? I mean how do I create the hello world app without using the appcompat_v7 library?
How do i take care of this error? Also why is the appcompat_v7 library being used when I don't want it? I mean how do I create the hello world app without using the appcompat_v7 library?
This is the styles_base.xml
file which is giving the above error.
This is the styles_base.xml
file which is giving the above error.
<resources>
<!-- Like in themes_base.xml, the namespace "*.AppCompat.Base" is used to
define base styles for the platform version. The "*.AppCompat"
variants are for direct use or use as parent styles by the app. -->
<eat-comment/>
<style name="Base.Widget.AppCompat.ActionBar.TabView"
parent="android:Widget.Material.ActionBar.TabView">
</style>
<style name="Base.Widget.AppCompat.Light.ActionBar.TabView"
parent="android:Widget.Material.Light.ActionBar.TabView">
</style>
<style name="Base.Widget.AppCompat.ActionBar.TabText"
parent="android:Widget.Material.ActionBar.TabText">
</style>
<style name="Base.Widget.AppCompat.Light.ActionBar.TabText"
parent="android:Widget.Material.Light.ActionBar.TabText">
</style>
<style name="Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse"
parent="android:Widget.Material.Light.ActionBar.TabText">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Menu"
parent="android:TextAppearance.Material.Widget.ActionBar.Menu">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title"
parent="android:TextAppearance.Material.Widget.ActionBar.Title">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"
parent="android:TextAppearance.Material.Widget.ActionBar.Title.Inverse">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse"
parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle.Inverse">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Title"
parent="android:TextAppearance.Material.Widget.ActionMode.Title">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle"
parent="android:TextAppearance.Material.Widget.ActionMode.Subtitle">
</style>
<!-- Action Button Styles -->
<style name="Base.Widget.AppCompat.ActionButton"
parent="android:Widget.Material.ActionButton">
</style>
<style name="Base.Widget.AppCompat.ActionButton.CloseMode"
parent="android:Widget.Material.ActionButton.CloseMode">
</style>
<style name="Base.Widget.AppCompat.ActionButton.Overflow"
parent="android:Widget.Material.ActionButton.Overflow">
</style>
<!--
Widget.AppCompat.Toolbar style is purposely ommitted. This is because the support
Toolbar implementation is used on ALL platforms and relies on the unbundled attrs.
The supporting Toolbar styles below only use basic attrs so work fine.
-->
<style name="Base.Widget.AppCompat.Toolbar.Button.Navigation"
parent="android:Widget.Material.Toolbar.Button.Navigation">
</style>
<style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Title"
parent="android:TextAppearance.Material.Widget.ActionBar.Title">
</style>
<style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle"
parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle">
</style>
<!-- Spinner Widgets -->
<style name="Base.Widget.AppCompat.ListView.DropDown"
parent="android:Widget.Material.ListView.DropDown"/>
<style name="Base.Widget.AppCompat.DropDownItem.Spinner"
parent="android:Widget.Material.DropDownItem.Spinner"/>
<style name="Base.Widget.AppCompat.Spinner" parent="android:Widget.Material.Spinner" />
<style name="Base.Widget.AppCompat.Spinner.DropDown.ActionBar" parent="android:Widget.Material.Spinner">
<item name="spinnerMode">dropdown</item>
<item name="disableChildrenWhenDisabled">true</item>
<item name="popupPromptView">@layout/abc_simple_dropdown_hint</item>
</style>
<style name="Base.Widget.AppCompat.ListView.Menu"
parent="android:Widget.Material.ListView" />
<!-- Popup Menu -->
<style name="Base.Widget.AppCompat.ListPopupWindow" parent="android:Widget.Material.ListPopupWindow">
</style>
<style name="Base.Widget.AppCompat.PopupMenu" parent="android:Widget.Material.PopupMenu">
</style>
<style name="Base.Widget.AppCompat.Light.PopupMenu"
parent="android:Widget.Material.Light.PopupMenu">
</style>
<style name="Base.Widget.AppCompat.PopupMenu.Overflow">
<item name="android:dropDownHorizontalOffset">-4dip</item>
<item name="android:overlapAnchor">true</item>
</style>
<style name="Base.Widget.AppCompat.Light.PopupMenu.Overflow">
<item name="android:dropDownHorizontalOffset">-4dip</item>
<item name="android:overlapAnchor">true</item>
</style>
<style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Large"
parent="android:TextAppearance.Material.Widget.PopupMenu.Large">
</style>
<style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Small"
parent="android:TextAppearance.Material.Widget.PopupMenu.Small">
</style>
<style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large"
parent="android:TextAppearance.Material.Widget.PopupMenu.Large">
</style>
<style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"
parent="android:TextAppearance.Material.Widget.PopupMenu.Small">
</style>
<!-- Search View result styles -->
<style name="Base.TextAppearance.AppCompat.SearchResult.Title"
parent="@android:TextAppearance.Material.SearchResult.Title">
</style>
<style name="Base.TextAppearance.AppCompat.SearchResult.Subtitle"
parent="@android:TextAppearance.Material.SearchResult.Subtitle">
</style>
<style name="Base.Widget.AppCompat.AutoCompleteTextView" parent="android:Widget.Material.AutoCompleteTextView" />
<style name="Base.Widget.AppCompat.Light.AutoCompleteTextView" parent="android:Widget.Material.AutoCompleteTextView" />
<!-- Progress Bar -->
<style name="Base.Widget.AppCompat.ProgressBar.Horizontal"
parent="android:Widget.Material.ProgressBar.Horizontal">
</style>
<style name="Base.Widget.AppCompat.ProgressBar"
parent="android:Widget.Material.ProgressBar">
</style>
<!-- TODO. Needs updating for Material -->
<style name="Base.Widget.AppCompat.ActivityChooserView" parent="">
<item name="android:gravity">center</item>
<item name="android:background">@drawable/abc_ab_share_pack_holo_dark</item>
<item name="android:divider">?attr/dividerVertical</item>
<item name="android:showDividers">middle</item>
<item name="android:dividerPadding">6dip</item>
</style>
This is the code I'm using:
This is the code I'm using:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
回答by Sachin Kundapur
Go to your Android SDK installed directory then extras > android > support > v7 > appcompat.
Go to your Android SDK installed directory then extras > android > support > v7 > appcompat.
in my case : D:\Software\adt-bundle-windows-x86-20140702\sdk\extras\android\support\v7\appcompat
in my case : D:\Software\adt-bundle-windows-x86-20140702\sdk\extras\android\support\v7\appcompat
once you are in appcompat folder ,check for project.properties file then change the value from default 19 to 21 as :
once you are in appcompat folder ,check for project.properties file then change the value from default 19 to 21 as :
target=android-21.
Save the file and then refresh your project.
Save the file and then refresh your project.
Then clean the project: In project tab , select clean option then select your project and clean...
Then clean the project: In project tab , select clean option then select your project and clean...
This will resolve the error. If not, make sure your project also targets API 21 or higher (same steps as before, and easily forgotten when upgrading a project which targets an older version). Enjoy coding...
This will resolve the error. If not, make sure your project also targets API 21 or higher (same steps as before, and easily forgotten when upgrading a project which targets an older version). Enjoy coding...
回答by Ben
I've just solved these exact errors myself. The key it seems is that your project.properties
file in your appcompat library project should use whatever the highest version of the API that your particular appcompat project has been written for (in your case it looks like v21). Easiest way I've found to tell is to look for the highest 'values-v**' folder inside the res folder (eg. values-v21
).
I've just solved these exact errors myself. The key it seems is that your project.properties
file in your appcompat library project should use whatever the highest version of the API that your particular appcompat project has been written for (in your case it looks like v21). Easiest way I've found to tell is to look for the highest 'values-v**' folder inside the res folder (eg. values-v21
).
To clarify, in addition to the instructions at Support Library Setup, your appcompat/project.properties
file should have in it: target=android-21
(mine came with 19 instead).
To clarify, in addition to the instructions at Support Library Setup, your appcompat/project.properties
file should have in it: target=android-21
(mine came with 19 instead).
Also ensure that you have the 'SDK Platform' to match that version installed (eg for v21 install Android 5.0 SDK Platform).
Also ensure that you have the 'SDK Platform' to match that version installed (eg for v21 install Android 5.0 SDK Platform).
Alternatively if you don't want to use the appcompat at all, (I think) all you need to do is right click your project > Properties > Android > Library > Remove the reference to the appcompat. The errors will still show up for the appcompat project, but shouldn't affect your project after that.
Alternatively if you don't want to use the appcompat at all, (I think) all you need to do is right click your project > Properties > Android > Library > Remove the reference to the appcompat. The errors will still show up for the appcompat project, but shouldn't affect your project after that.
回答by back track
Prerequirements
Prerequirements
Make sure that you've downloaded the latest extras as well as the Android 5.0 SDK via the SDK-Manager.
Make sure that you've downloaded the latest extras as well as the Android 5.0 SDK via the SDK-Manager.
回答by pajus_cz
This has happened to me after I "updated" into 5.0 SDK and wanted to create a new application with support library
This has happened to me after I "updated" into 5.0 SDK and wanted to create a new application with support library
In both Projects (project.properties
file) in the one you want to use support library and the support library itself it has to be set the same target
In both Projects (project.properties
file) in the one you want to use support library and the support library itself it has to be set the same target
e.g. for my case it worked
e.g. for my case it worked
- In project
android-support-v7-appcompat
Changeproject.properties
intotarget=android-21
- Clean
android-support-v7-appcompat
In my project (where I desire support library) - In my project, Change
project.properties
intotarget=android-21
andandroid.library.reference.1=../android-support-v7-appcompat
(or add support library in project properties) - Clean the project
- In project
android-support-v7-appcompat
Changeproject.properties
intotarget=android-21
- Clean
android-support-v7-appcompat
In my project (where I desire support library) - In my project, Change
project.properties
intotarget=android-21
andandroid.library.reference.1=../android-support-v7-appcompat
(or add support library in project properties) - Clean the project
回答by Somir Saikia
My Project Build Target of android-support-v7-appcompat was with API 19 just changed it to API 20 it worked for me
My Project Build Target of android-support-v7-appcompat was with API 19 just changed it to API 20 it worked for me
Right click on android-support-v7-appcompat
library project
Go to properties
Click on Android
Change project build Target from Android 4.x.x to Android 5.0
Right click on android-support-v7-appcompat
library project
Go to properties
Click on Android
Change project build Target from Android 4.x.x to Android 5.0
This helped me hopefully it helps others too.
This helped me hopefully it helps others too.
回答by Panther
Your compile Sdk version is set to 21
. change it to 20
or less
. Its present in build.gradle
in android studio. Then clean the project and rebuild it
Your compile Sdk version is set to 21
. change it to 20
or less
. Its present in build.gradle
in android studio. Then clean the project and rebuild it
回答by Walker Rowe
I followed all of those instructions including the instructions from Android. What finally fixed it for me was changing Project Build Target from API level to API level 21 in my project.
I followed all of those instructions including the instructions from Android. What finally fixed it for me was changing Project Build Target from API level to API level 21 in my project.
I am using API 22 (Android 5.1.1), which is newer than when these other answers were written. So you cannot set target=21 in the support library as you could 6 months ago.
I am using API 22 (Android 5.1.1), which is newer than when these other answers were written. So you cannot set target=21 in the support library as you could 6 months ago.
回答by shiv
I am writing application to API level 21, I tried all the above but didn't worked, Finally i deleted Values-v23 from appcompat_v7.It worked.
I am writing application to API level 21, I tried all the above but didn't worked, Finally i deleted Values-v23 from appcompat_v7.It worked.
回答by Alfred Loh
Well, it costed me 2 days to figure out the problem. In short, by default you shall just keep the max version to be the highest level you had downloaded, says, Level 23 (Android M) for my case.
Well, it costed me 2 days to figure out the problem. In short, by default you shall just keep the max version to be the highest level you had downloaded, says, Level 23 (Android M) for my case.
otherwise you will get these errors. You have to go to project properties of both your project and appcompat to change the target version.
otherwise you will get these errors. You have to go to project properties of both your project and appcompat to change the target version.
sigh.
sigh.
回答by ????? ?????????
For my Android Studio workout. I found that this happen when I change Compile SDK Version from API23 (Android 6) to be API17 (Android 4.2) manually in Project Structure setting, and trying to change some code in layout files.
For my Android Studio workout. I found that this happen when I change Compile SDK Version from API23 (Android 6) to be API17 (Android 4.2) manually in Project Structure setting, and trying to change some code in layout files.
I miss-understood that I have to change it manually, even on New Project I have selected the "Minimum SdK" to be 4.2 already.
I miss-understood that I have to change it manually, even on New Project I have selected the "Minimum SdK" to be 4.2 already.
Solve by just change it back to API23, and it still can run on Android 4.2. ^^
Solve by just change it back to API23, and it still can run on Android 4.2. ^^