I have never used LAMW but now I installed it through OPM and tried to create a "LAMW [GUI] Android Module" project.
I got this error dialog instead :
"uninitialized function result in function TFormWorkspace" is an invalid integerThere must be an uninitialized Variant. It tries to convert text into number.The exception happens in
function TFormWorkspace.GetNDKVersion(ndkRelease: string): integer;
...
Result:= StrToInt(Trim(strNdkVersion));
The value of ndkRelease = '
TryGetNDKRelease(pathNDK:AnsiString):AnsiString;'
Such a function (
TryGetNDKRelease) is just below
GetNDKVersion and indeed its return value is not initialized if there are no config files.
But how the function signature etc. ended up in a variable value? The functions are not published (no RTTI).
I initialized Result := ''; and tried again and got :
---
Warning. Minimum Target API required by "Google Play Store" = 33
Please, update your android sdk/platforms folder!
How to:
.open a command line terminal and go to folder "sdk/tools/bin"
.run the command >>sdkmanager --update
.run the command >>sdkmanager "build-tools;33.0.2" "platforms;android-33"---
Who knows details of this LAMW code? Who maintains it?
There seem to be many uninitialized return values, both Integer and String types.
Note: A dynamic String is initialized elsewhere automatically but not when it is a function Result. Many years ago I opened a bug report for FPC and then learned it is a feature, not a bug.
I don't understand why the code works with earlier Lazarus versions but not with 3.99. I don't see anything version dependent there.
Somebody should debug the "List index (5) out of bounds" error. I didn't get it.