Creating styles-v21.xml
Solution 1
Right click on res folder, choose New --> Android resource file, set the same name for the new file "styles", in Available qualifiers: choose the last item "Version" and finally set "Platform API level" 21.
Solution 2
By default, Android Studio doesn't create styles.xml (v21). What you need to do is create a folder structure like the following:
- res/values/styles.xml
- res/values-v21/styles.xml
And this is what you will get in Android Studio:
Then you can defined different AppTheme
for different API levels.
Solution 3
You should create styles.xml for version 21 in values-v21 folder and android studio automatically add it as styles.xml(v21)
user2456977
Updated on July 19, 2022Comments
-
user2456977 almost 2 years
In Android Studio, I imported a project which did not include
styles.xml (v21)
. So I created astyles-v21.xml
file in thevalues
directory. Bothstyles.xml
andstyles-v21.xml
are in thevalues
directory now.styles.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="AppTheme.Base"> <!-- Customize your theme here. --> </style> <style name="AppTheme.Base" parent="Theme.AppCompat.Light"> </style> </resources>
styles-v21.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> </style> </resources>
When I build the project I get a build error:
Error:Error: Duplicate resources: C:\xxx\main\res\values\styles-v21.xml:style/AppTheme, C:\xxx\main\res\values\styles.xml:style/AppTheme
The error is that both resource files have the same
style
name:AppTheme
. But in other projects and tutorials I've seen, thesestyles
have the same name. One is for Android with version 21 compatibility and the other is for Android without the compatibility.I guess I want to know if I should simply change the name or if these files are supposed to have the same name - which means there is a bigger problem at hand. How should I proceed?
-
650aa6a2 about 5 yearsCan I delete the general styles.xml if I'm only targeting 21+?
-
Yuchen about 5 years@pfdint You don't have to keep the
res/values-v21/styles.xml
if you only target 21+. You can keep the generic one.