5

I am having trouble to at library appcompat_v7

It have error on path

res/values-v21/styles_base.xml

and at line 75 show error - below 75 to 78:

<style name="Base.Widget.AppCompat.ActionButton"
          parent="android:Widget.Material.ActionButton">
 </style>

at console:

home/user/workspace/appcompat_v7/res/values-v21/themes_base.xml:156: error: Error: No resource found that matches the given name: attr 'android:colorControlNormal'.

and several error similares changing just the 'android:*'

How can I fix this?

lcsvcn
  • 1,184
  • 3
  • 13
  • 28
  • Have the same problem here. Looks like it's a problem with the API v21 update – Raul Pinto Oct 19 '14 at 18:47
  • Did you try using the new SDK of API level 21? – Raul Pinto Oct 19 '14 at 18:51
  • 1
    I finally made my app running by switching to API level 21 for my app as well as the appcompat project/module (i.e. the project that includes the resources used by compatibility lib v21). Now I found out, that v21 doesn't seem to include the holo theme and my app looks totally different :( – Raul Pinto Oct 19 '14 at 19:31
  • So I recovered appcompat-v7 resources from "Android Support Repository" by extracting from `appcompat-v7-20.0.0.aar` and getting android-support-v7-appcompat.jar from my git repo. Now it's running again with the style it had before the update. – Raul Pinto Oct 20 '14 at 11:46
  • @RaulPinto, Yes, I am compiling with the API 21. – lcsvcn Oct 27 '14 at 13:56
  • @RaulPinto, Did you solved the issue? If you did, could you answer the question making a step-by-step how to fix it? – lcsvcn Oct 27 '14 at 14:02

4 Answers4

4

Ok, I'm not sure, if this a real "solution" but here is my theory and what I did:

My Theory

After updating the "Android Support Library" version 21, I got a similar error. It seems, my IntelliJ didn't update the resources in my module correctly, which pointed to the ressources directory for appcompat.

Furthermore, I had some widgets and Code that directly pointed to drawables in those ressources.

But in v21 of the Android Support Library Google dropped support for the Holo theme!

Hence, the compiler complains about not finding the resources my theme depends on.

What I did

When it compiled

To be honest, I'm not really sure in how I came out making this work. I guess, I used did some restarting and cache emptying etc. Copying ressources to my project's folder etc. When my app finally started, it looked different! Of course, it had the Material theme instead of the Holo theme.

And not everything survived this transition. E.g. the Action Bar was black (standard) instead of green (my theme). So I tried to go back to an old version of appcompat instead of migrating my whole app to Material.

Since you asked me for my solution, I'm posting what I did to "downgrade" to appcompat v20.

Downgrading to appcompat v20

  1. Start SDK Manager
  2. Download Android Support Repository
  3. Go to directory \android-sdk\extras\android\m2repository\com\android\support\appcompat-v7\20.0.0\ where Android SDK is installed
  4. Extract all files from appcompat-v7-20.0.0.aar (it's a zip file) to libs\appcompat\ directory in my project, after I created the directory appcompat
  5. Added these as a module in my IntelliJ and made my project depend on this module
  6. Recovered android-support-v7-appcompat.jar for v20 from my git repository
  7. Used the recovered appcompat jar instead of the v21 one

Step 6 is the one, I found very difficult. I expected the classes.jar from the .aar file to be the android-support-v7-appcompat.jar, but it wasn't. I even don't know, where you can get the android-support-v7-appcompat.jar from in the right version because I didn't find it in the repository. And I didn't want to download it from "somewhere in the internet".

I was "lucky", it already was in my git in the correct version.

Now my app compiled and looked correctly. Hope so does yours!

Raul Pinto
  • 1,095
  • 8
  • 15
  • 1
    I was not so lucky to have it already in my git repo; and the sdk updater deleted it from the file system. What I did in the end: git clone from https://android.googlesource.com/platform/frameworks/support.git/+/android-4.4.4_r2.0.1, git checkout to that tag (cae6ca....) and then have Eclipse import the v7 folder as a project – jdowdell Oct 30 '14 at 01:09
  • So, for my part, I had to checkout Branch android-support-lib-19.1.0 from the git repository (https://android.googlesource.com/platform/frameworks/support.git/+/android-support-lib-19.1.0), because otherwise my app didn't run under Android 2.3.4 (API Level 10). – Raul Pinto Nov 11 '14 at 14:11
  • 1
    You can download v20 support lib here: https://dl-ssl.google.com/android/repository/support_r20.zip Then follow the steps here: https://developer.android.com/tools/support-library/setup.html Follow the 'Adding libraries with resources' guide. – Oliver Evans Nov 26 '14 at 10:28
4

Had same problem after upgrading my Eclipse and import "Android Support Library" in workspace.

I think it's a bad solution to "Downgrading to appcompat" so I tried to find another way and found it. My problem was that my "Project Build Target" of AppCompat was set to API lvl 19. So this is a problem:

-Eclipse wasn't load the data for API lvl 21 for AppCompat.

-Appcompat have Target API lvl 19, but trying to set style for API lvl 21.

Maybe You have same problem so checkout what was help me:

1.

Right click on Appcompat project => Properties => Android => Checkout where was your mark, and if it's not set on Android 5.0 - fix it and click ok.

2.

Project => Clean => Set "Clean all projects" => Ok

P.S. Sorry if I have mistakes - English isn't my native language.

3

home/user/workspace/appcompat_v7/res/values-v21/themes_base.xml:156: error: Error: No resource found that matches the given name: attr 'android:colorControlNormal'.

I assumed values-v21 stands for api level 21, so I updated to android 5.0 and it works for me.

Machavity
  • 30,841
  • 27
  • 92
  • 100
1

My solution is more radical: delete all styles files and every reference for them

  • Welcome to SO. With all detailed and relevant answers there, I would suggest you to spend some more time explain why and how this is better approach than others above. Thanks. – display name Jan 21 '15 at 22:34