Other B4A v7.00 BETA is available for download

Status
Not open for further replies.

Erel

B4X founder
Staff member
Licensed User
Longtime User
I'm happy to release B4A v7.00 BETA. This update includes the new resumable subs feature. This is the most important programing language improvement since the addition of classes in B4A v2.
It makes it much simpler to manage asynchronous tasks.

Improvements:
  • Resumable subs - Wait For / Sleep: https://www.b4x.com/android/forum/threads/resumable-subs-sleep-wait-for.78601/#post-498072
    [B4X] SQL with Wait For
    [B4X] OkHttpUtils2 with Wait For
  • Async dialogs: https://www.b4x.com/android/forum/threads/doevents-deprecated-and-async-dialogs-msgbox.79578/
  • Variables and subs renaming based on the Find All References feature:

    rename-gif.53634


  • Quick search supports replacing including replacing in all modules.
  • Icon picker - Filter field supports filtering by hex code.
  • Starter service better handles cases where the process is started by multiple intents.
  • CSBuilder.Image adds an underscore instead of space to fix an issue with multiline strings.
  • Application_Error - Fixed a compatibility issue with Android 2.2.
  • PhoneCalls - READ_CALL_LOG permission added. This is a new requirement.
  • Sender is set when raising events with CallSub or CallSubDelayed from classes.
  • DoEvents is deprecated. A warning will appear when using it (see the async dialogs tutorial). Note that it is still supported, exactly as before.
  • SQL library updated to make it simpler to use with Wait For.

Notes:
- B4A compiled libraries with service modules need to be recompiled.
- Java 8 is required (Tools - Configure Paths).

Developers who are eligible for a free upgrade will receive an email with upgrade instructions.
Please post issues in new threads.
 
Last edited:

techknight

Well-Known Member
Licensed User
Longtime User
it would be cool as hell if the Wait For had a built-in timeout with Else.

so if the event never fires, it times out, and proceeds to run "else" in the subroutine. That would round it off for me :)
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
so if the event never fires, it times out, and proceeds to run "else" in the subroutine. That would round it off for me
Nothing bad happens if the event is never raised. The sub will just never be resumed. Eventually it will be released.
When a timeout makes sense then it should be implemented by the object that raises the event. For example if you are sending a request with HttpJob then there is a default timeout of 30 seconds. The same is true for Socket.Connect.
 
Upvote 0

techknight

Well-Known Member
Licensed User
Longtime User
Well my thought is a packet send/receive loop. Using Astreams. So Wait For Astreams_newdata, if it never gets anything, I need to abort the operation and show the user an error that it failed. Would be sweet if it was just built-in.

Right now, I am using an outside timer. if the event never fires, the timer will tick and see the flag was never set so it does the abort routine there. I design apps as/for control systems. so tight packet loops with ACK/NACK are a thing...

Also your right, Nothing bad happens "programmatically", But Systematically, very bad things can happen if events dont fire! Such as if a max-fill/full packet is lost, and not dealt with, a tank can overflow and flood electronics. (Just a scenario, sure there are other safetys, etc.).

Sorry for derailing the thread ;-)
 
Last edited:
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Well my thought is a packet send/receive loop. Using Astreams. So Wait For Astreams_newdata, if it never gets anything, I need to abort the operation and show the user an error that it failed. Would be sweet if it was just built-in.
You can start a new thread for this in the questions forum. I think that there is a relatively elegant solution for this.
 
Upvote 0

strupp01

Active Member
Licensed User
Longtime User
Hello Erel,
Install the new version V7.0 Beta parallel in a different folder or delete the old version and import the new version?
 
Upvote 0

sea121

Member
Licensed User
Longtime User
B4A version: 7.00 BETA #1
Parsing code. (0.35s)
Compiling code. (0.29s)

ObfuscatorMap.txt file created in Objects folder.
Compiling layouts code. (0.00s)
Organizing libraries. (0.00s)
Generating R file. (0.15s)
Compiling generated Java code. (4.44s)
Convert byte code - optimized dex. Error
java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Exception in thread "main"
 
Upvote 0

RauchG

Active Member
Licensed User
Longtime User
I have several debug errors with Compile & Debug

Compile Release is OK
Compile & Rapid Debug is OK

Error with Compile & Debug:
B4A version: 7.00 BETA #1
Parsing code. (0.65s)
Compiling code. (2.21s)
Compiling layouts code. (0.17s)
Organizing libraries. (1.79s)
Running custom action. (0.14s)
Generating R file. (0.83s)
Compiling generated Java code. Error
B4A line: 612
End Sub
javac 1.8.0_131
src\com\combera\envis\main.java:1473: error: incompatible types: void cannot be converted to Throwable
throw Debug.ErrorCaught(e);
^

Greeting
RauchG
 
Last edited:
Upvote 0
Status
Not open for further replies.
Top