Other B4A v10.50 is available for download

Erel

B4X founder
Staff member
Licensed User
Longtime User
Download link: https://www.b4x.com/b4a.html

Improvements:
  1. New libraries tab:




  2. Find all references feature was rewritten. Previously it couldn't handle more complex cases, where a sub or field are called indirectly:
    For example:



  3. The various IDE notifications also appear in the logs:




  4. #CustomBuildAction - direct support for jar files, including Java 11+ UI jars.
  5. Default manifest updated. This allows resetting the manifest by removing the manifest text and saving.
  6. Dexer optimization can be disabled through the ini file.
  7. Updated or new internal libraries: XUI, XUI Views, B4XDrawer, BCTextEngine, OkHttpUtils2, GooglePlayBilling, KeyValueStore, B4XPages template, GooglePlayBIlling and FileProvider.
  8. Bug fixes and other minor improvements. This includes a long-standing bug where the wrong context was used after a resumed sleep in some edge cases (fix is relevant to B4XPages).
I wish you all a great 2021!
 

Hamied Abou Hulaikah

Well-Known Member
Licensed User
Longtime User
Thank you @Erel
I see this change in this release:
B4X:
Dim a as string="1234"
Dim b as object="1234"
'a=b >> False in this version
'a=b >> True in old version
Is this bug? or I'm wrong in coding!
 
Upvote 0

agraham

Expert
Licensed User
Longtime User
Conditional comparison is done by casting the second item to the type of the first first, so to get a String comparison it should be if a = b then. In general when using an Object type in a comparison then it should be on the right as what is probably intended is a comparison of the type of the other (first parameter). This can also be important if you are comparing numeric values and String types, to get a numeric comparison the numeric type needs to be on the left or you may get unexpected results as String values may have leading or trailing zeroes.
 
Upvote 0

Hamied Abou Hulaikah

Well-Known Member
Licensed User
Longtime User
That is means no hope with new version to compile my old projects containing this comparison in object=string manner!
So only solution is downgrade B4A to previous one! or revise all old projects code and change *impossible, I have large codes"
I hope this problem solved asap.
 
Upvote 0

agraham

Expert
Licensed User
Longtime User
I don't think anything has changed with the compiler, I think it was always like that but a new warning was added as some people were getting puzzling comparison results.
If it was working before I would expect it to keep working now.
 
Upvote 0

Jeffrey Cameron

Well-Known Member
Licensed User
Longtime User
You are missing the point. All the IDE is doing new is warning you your code has the potential to fail, it is not doing anything differently that it always has. If it was working in prior versions properly it will continue to work properly in the new version. The order of comparison may not be significant if you are sure your object variable is of the same type you are comparing.

If it makes you feel better, just add
B4X:
    #IgnoreWarnings: 35
to your Activity Attributes section and/or modules.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…