I have planned to create an SDK in android, that means to share my class files and resource(layouts) to another application that requires them. If I export my application as JAR it does not include the resource files and R.class. I know currently Android does not support to packaging resource file via JAR but I searched the net and found one solution if compile our resource files with source code means we can access the resource in some other application.
So for that reason I did it in the following way:
copied all res folders content into my source folder
- src ->com.mypackege -> res--->here i put my res folder
finally my src folder look like
src
com.mypackage
>myfile.java drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi com.mypackage.drawable com.mypackage.layout com.mypackage.menu com.mypackage.values
and i build my project i got all class files including resource and r.class in my bin
then i create jar manually by jar -cvf mysample.jar com/mypackage/*
the final jar contain all classes and resource of my project in side mypackage.
then I add mysample.jar
into another application say testapp
, here I put the JAR in asset folder(because of layout )and add to build path. And also I configure the build path
In this application I call the myfile.class
from mysample.jar
which is needed to load the layout from that JAR.
The problem is here it doesn't see resource under the JAR file it only see the resource in current project res folder and though NULL pointer Exception
But it calls the R.java from JAR file. Ad also i tried to put xmlns:custom="http://schemas.android.com/apk/res-auto" in my manifest file it is also not working. I hope I exactly come to close this issue, it may be a resource mapping problem. do you have any idea to resolve this?