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

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

Posted by: admin April 23, 2020 Leave a comment

Questions:

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.

How to&Answers:

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.

Answer:

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

Answer:

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.

Answer:

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