' Reads the version from a .b4xlib file (B4A / B4J)
Sub GetB4XLibVersion (LibPath As String) As String
Dim jZip As JavaObject
jZip.InitializeNewInstance("java.util.zip.ZipFile", Array(LibPath))
Dim jManifestEntry As JavaObject = jZip.RunMethod("getEntry", Array("manifest.txt"))
If jManifestEntry.IsInitialized Then
Dim jInputStream As JavaObject = jZip.RunMethod("getInputStream", Array(jManifestEntry))
Dim jScanner As JavaObject
jScanner.InitializeNewInstance("java.util.Scanner", Array(jInputStream, "UTF-8"))
jScanner.RunMethod("useDelimiter", Array("\\A")) ' Read entire stream
Dim manifestText As String = jScanner.RunMethod("next", Null)
jScanner.RunMethod("close", Null)
' Parse version (e.g., "Version=1.00")
Dim lines() As String = Regex.Split(CRLF, manifestText)
For Each line As String In lines
If line.StartsWith("Version=") Then
Return line.SubString(8) ' Extract version number
End If
Next
End If
Return "Unknown"
End Sub