B4J Question [BANano] [SOLVEE] B4J 8.50 Error Cannot find bananoapp.jar

Mashiane

Expert
Licensed User
Ola

UPDATE: SOLUTION for BANAno 5.10 Copy banano.jar to bananoapp.jar and banano.xml to bananoapp.xml

With B4J 8.50 for some reason I am experiencing this error and I don't know what causes it or its source or reproduction.

I needed to update an old banano library, this i did and everything compiled properly, now the app referencing that lib is not working and gives this error.

bananoapp.png


Anything?
 
Last edited:

Mashiane

Expert
Licensed User
I have noted that in the old library i was working on and recompiled, the manifet.txt file generated by BANano shows this.

B4X:
Version=1.17
B4J.DependsOn=BANano,bananovuetifycore,BANanoApp

I can understand the .DependsOn is perhaps based on my library references, however don't know the source of the BANanoApp listed above

This is my library refences.

libraryreference.png


Anyway, I just copied the BANano.jar to BANanoApp.jar and the xml and my projects are working again.
 
Last edited:
Upvote 0

alwaysbusy

Expert
Licensed User
Have you tried to remove the BANanoApp from the dependsOn list in the manifest.txt file? Does it work then? If that is the case I have at least something to go on to find the bug or can just remove BANanoApp if it is in the dependsOn list. I know for 5.10 I had to rewrite the b4xlib library routine completely because of your problem with the order in which .js/.css files were loaded so maybe something has slipped in the nested libs system as this is one of the more complex routines in BANano.

BANanoApp is an internal name I use to map the code of the active project and Types (not normal external b4xlib code). I have however never encountered a case where a BANanoApp.jar or BANanoApp.js file was ever written to disk so I have no idea where you even got the BANanoApp.jar/BANanoApp.xml files (I searched my hard disks for any file called BANanoApp.* but nothing came up). If it only is because BANanoApp is listed in the manifest.txt file, the solution may be simple. If not, then a small sample project demonstrating the problem would help.

Alwaysbusy
 
Upvote 0

Mashiane

Expert
Licensed User
I also did the same you know, searched for any app with that and nada. I also could not reproduce this problem as I don’t have any project named BananoApp. It was only when I was just trying to investigate the cause and looked inside my b4xlib then noticed this. So the solution could be as simple as removing BAnanoApp from the B4J DependsOn in the manifest. How and why its creeping out like this I don't know.

Anyway I have created a folder of these publicly available projects in my github. If you open bananovuetifyconnect.b4xlib, you will notice that it it has BANanoApp on its manifest. The bananovuetifyconnect library (source) references bananovuetifycore. When however i remove the reference, the dependson BANanoApp is not included. Strange..


Ta!
 
Last edited:
Upvote 0

Mashiane

Expert
Licensed User
have you tried removing the BANanoApp from the B4J DependsOn
Hi, the BANanoApp is on the manifest.txt file and not on the B4J.DependsOn. Updating this file manually and then zipping the library seems to cause some form of corruption. The library is not recognized anymore by B4J. Hope this helps.

Update: I had zipped on the folder and not the root. Aha! Yes, removing the BANanoApp on the manifest.txt file does resolve the matter.

1596201705860.png
 
Last edited:
Upvote 0

alwaysbusy

Expert
Licensed User
Updating this file manually and then zipping the library seems to cause some form of corruption. The library is not recognized anymore by B4J
Just unzipped the Connect lib, removed the BANanoApp in the manifest.txt file, rezipped it and B4J recognizes the lib just fine (After all, that is all what a b4xlib is).

resulting manifest.txt of the Connect lib (the Core doesn't have BANanoApp in it's B4J.DependsOn list)
B4X:
Version=4.00
B4J.DependsOn=BANano,bananovuetifycore

Result when I open one of your projects (doesn't run on my machine probably because of wrong lib versions)
1596203615858.png


So you must have done something wrong when editing the manifest.txt file. There is nothing more I can do as I don't have a runnable project that uses those two libs.

Alwaysbusy
 
Upvote 0

Mashiane

Expert
Licensed User
removed the BANanoApp in the manifest.txt file
Noted with thanks, yes I noted where my mistake was, I was zipping the b4xlib back from the folder location and not on its root. As soon as I unzipped it from the root, it worked. Now I know!

There is nothing more I can do as I don't have a runnable project
Actually you already have a solution , that as long as BANanoApp is not included the manifest.txt file as part of its B4J.Depends list, then all is good.

Whilst that would be a "patch", understanding the root cause of the dependency inclusion, would have been the ultimate goal. Anyway...

The problem took place when the library was being compiled.

Its funny because in some library compilations, that dependency was not included, but with VuetifyCore it jumped in and the library could not be compiled. When you have time, you might want to try and compile the library on your side and see, I drop boxed you the source code on this link above. https://www.b4x.com/android/forum/t...-cannot-find-bananoapp-jar.120156/post-752916

Again, thanks a lot for taking time to look at this. One more solution to the joy of BANano!
 
Upvote 0
Top