Add a prefix. As I wrote on this thread earlier: >> You may also want to use some sort of unique prefix on your resource >> files and names, so that you do not accidentally collide with a >> project that is using your library.
Also, for any resources you refer to in the binary-only library this way, you will need to use reflection or getIdentifier() to get the ID value. Any pre-compiled R.* constants will be wrong. This limitation is only for binary-only libraries -- traditional source-based Android library projects will have their R values work properly. On Thu, Apr 21, 2011 at 7:36 PM, Rohit <mord...@gmail.com> wrote: > I have the same problem. I want to package in the res folder as well - > which I can in the jar file. However, when I run the code the wrong R > file is referenced and as a result the wrong resource is referenced > which causes all sorts of problems. Is there a way to mark my R files > with a namespace so that there is no confusion about which resource > file I am referring to? > > Rohit > > > On Apr 15, 4:06 am, Mark Murphy <mmur...@commonsware.com> wrote: >> On Fri, Apr 15, 2011 at 3:03 AM, Dan <dan.schm...@gmail.com> wrote: >> > I have a nice .apk with a service and 4 activities, a shared native >> > library with some jni goodness, some drawable files in the res >> > directory and some other data in the assets directory. Another >> > company would like to package the functionality of my .apk along >> > with their .apk so the user only has to make one download. >> >> > I would like to take their money with as small amount of work for >> > myself and their engineers as possible. >> >> How are you with a gun? You'll get free wallets along with the money that >> way. >> >> :-) >> >> > My current solution is to >> > send them a .zip file with all my classes, the assets, the resources, >> > and the native .so library, and the manifest, and my .mk files and >> > have them copy bits of the manifest into theirs, put the resources >> > and assets next to theirs, do the build process so the new R.java >> > is generated and then compile all my classes. >> >> > I would prefer not to give them the source code to my classes, but >> > the resources in R.java make that rough. I do my builds through >> > ant on the command line, they use eclipse so there tends to be >> > some finger pointing when some functionality doesn't work. Is >> > there a better solution than what I am currently doing and where >> > would I look for the details of what sort of things will bite me when >> > trying to pack files in a jar for someone else to reuse? (E.g. is >> > there a workaround for providing a drawable ID for a notification?) >> >> Well, the best answer would be an Android library project: >> >> http://developer.android.com/guide/developing/projects/projects-eclip...http://developer.android.com/guide/developing/projects/projects-cmdli... >> >> I do not know how well that handles NDK stuff, and my memory is fuzzy >> on assets. The rest would be no problem. >> >> Initially, you will wind up with stuff that will look like that you >> need to ship Java code. However, there are workarounds for that. >> Quoting myself from one of my books: >> >> "Android library projects are designed for distributing source code. >> That may or may not be palatable in all cases. You can create a >> binary-only library project via the following steps: >> >> -- Create an Android library project, with your source code and such — >> this is your master project, from which you will create a version of >> the library project for distribution >> >> -- Compile the Java source (e.g., ant compile) and turn it into a JAR file >> >> -- Create a distribution Android library project, with the same >> resources as the master library project, but no source code >> >> -- Put the JAR file in the distribution Android library project's >> libs/ directory >> >> The resulting distribution Android library project will have >> everything a main project will need, just without the source code." >> >> You may also want to use some sort of unique prefix on your resource >> files and names, so that you do not accidentally collide with a >> project that is using your library. >> >> -- >> Mark Murphy (a Commons >> Guy)http://commonsware.com|http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy >> >> Warescription: Three Android Books, Plus Updates, One Low Price! > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android Training in London: http://bit.ly/smand1, http://bit.ly/smand2 -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en