3

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:

  1. 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
      
  2. and i build my project i got all class files including resource and r.class in my bin

  3. then i create jar manually by jar -cvf mysample.jar com/mypackage/*

  4. 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?

King of Masses
  • 18,405
  • 4
  • 60
  • 77
Mr.Cool
  • 1,525
  • 10
  • 32
  • 51

1 Answers1

2

You can't store resources in jar. It's possible, but it's tricky, so for now Android provides just Android Library. Otherwise you can use compiled source code and resourses separately (by providing resources ID's to your library)

Taras
  • 2,526
  • 3
  • 33
  • 63
  • how can i share my resource to some another application via android library function – Mr.Cool Mar 11 '13 at 12:05
  • @Mr.Cool http://stackoverflow.com/questions/7973822/how-to-convert-an-android-library-project-to-an-external-jar take a look here – Taras Mar 11 '13 at 12:28