cottonBallPaws
cottonBallPaws

Reputation: 21630

When using an Android Library Project how do you reference xml resources properly?

I have an Android Library Project that contains several styles/themes defined in its styles.xml file.

Normally, when referencing this style in some other xml layout or manifest file, you would just write android:theme="@style/TheNameOfTheStyle"

When using a library project, how does the dependent project properly reference that style now? Just leaving it as android:theme="@style/TheNameOfTheStyle" gives me an error saying there is no resource found matching that name.

I guess this same question applies for other references like @string, @color etc.

Thanks

Edit: Ok so it appears that you are suppose to reference it just like normal, but the console in eclipse is giving me this error:

Error: No resource found that matches the given name (at 'theme' with value '@style/ThemeName').

(facepalm) Edit

I just needed to "Clean Project" in Eclipse. Now it's working.

Upvotes: 34

Views: 13668

Answers (4)

AlanKley
AlanKley

Reputation: 4780

I use IntelliJ and what worked for me is to reference the resource normally and to make sure the library is added as a dependency of the project

Upvotes: 3

bencallis
bencallis

Reputation: 3679

I just had this issue in Android Studio. It seems Android Studio didn't realise my library project was a library despite the project.properties stating android.library=true.

I fixed this issue by checking the "Is Library" checkbox in Project Structure.

enter image description here

Upvotes: 0

nicordesigns
nicordesigns

Reputation: 904

I just ran into the same issue however cleaning in Eclipse did not work until I set both the library project and the regular project to have a matching : Target Build Property.

Upvotes: 2

Rafael T
Rafael T

Reputation: 15689

Its important to build the project after adding resources (or just have autobuild on) and cleaning the project helps most of the times. Restarting Eclipse when "something" go wrong is a good idea, too.

Also note that Android merges the recources, so the last project that is build "wins" the name. For this reason it's a good idea to prefix ALL resources somehow.

Upvotes: 16

Related Questions