I'm sorry but I just cannot get this to work no matter what I try (and to be honest I was being rather stupid to start with

).
These are my steps in fine detail, please correct me where I am going wrong!
1). Using B4A version 4.00
2). Open the project containing only a Main module and the Class which I want to turn into a library. The Class uses one file called "crosshair.png" which is listed in the Files window.
2). Copy JarFileLoader module into project using "Project>Add Existing Module and browse to JarFileLoader.bas"
3). Declare the object in my Class Globals "Dim jfl As JarFileLoader" (I also tried declaring in Main but that didn't work because Main is excluded when compiling to a Lib)
4). Initialise in the Class Initialisation subroutine "jfl.Initialize(
True)"
5). Replace the original call to load the bitmap with the new call to jfl.LoadBitmapFromJar...
Code:
' imgSearchCrossHair.Bitmap = LoadBitmap(File.DirAssets, "crosshair.png")
imgSearchCrossHair.Bitmap = jfl.LoadBitmapFromJar("crosshair.png")
6).
Run project in debug mode and all works perfect as before, no noticeable difference.
7). Now to compile to a Library I change the initialisation to "jfl.Initialize(
False)"
8). Select compile to Library option and get a success message.
9). Open the generated .jar file using 7-zip and copy the crosshair.png file directly into the root of the folder.
10). Close folder then re-open to ensure that file is definitely still present - it is!

11). Open my new project which uses the Library, click Lib refresh and attempt to run in Legacy Debug (Rapid Debug doesn't show the log statement, only a Java error message). Then get the error message below stating that file was not found, Why?
Cannot find file: crosshair.png
java.lang.RuntimeException: Object should first be initialized (InputStream).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:49)
at b4a.clsColorPicker.jarfileloader._loadbitmapfromjar(jarfileloader.java:78)
at b4a.clsColorPicker.colorpicker._initcolorrangepanel(colorpicker.java:1038)
at b4a.clsColorPicker.colorpicker._initcolorpicker(colorpicker.java:914)
at b4a.clsColorPicker.colorpicker._addview(colorpicker.java:111)
at b4a.clsColorPicker.main._activity_create(main.java:390)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:175)
at b4a.clsColorPicker.main.afterFirstLayout(main.java:98)
at b4a.clsColorPicker.main.access$100(main.java:16)
at b4a.clsColorPicker.main$WaitForLayout.run(main.java:76)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
at dalvik.system.NativeStart.main(Native Method)
java.lang.RuntimeException: Object should first be initialized (InputStream).
Please, any idea where I may have gone wrong?