Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error at lib support appcompat_v7

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?

like image 629
lcsvcn Avatar asked Oct 19 '14 18:10

lcsvcn


2 Answers

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!

like image 104
Raul Pinto Avatar answered Sep 27 '22 21:09

Raul Pinto


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.

like image 21
AdamantMind Avatar answered Sep 27 '22 21:09

AdamantMind