Basic4android v2.00 is released!

Erel

B4X founder
Staff member
Licensed User
Longtime User
Basic4android v2.00 is now available. This upgrade is probably the most significant upgrade since v1.00.

The major new feature is support for class modules. With support for classes Basic4android now allows you to write both procedural code and object oriented code.
Object oriented code makes it easier to write and maintain large projects.

Basic4android v2.00 improvements:

- Classes

- Public and Private access modifiers

- Built-in documentation

- Better handling of tasks in the internal thread pool

- CallSubDelayed keywords - These keywords significantly simplify the interaction between services and activities.

- Building process improved and it now supports libraries with embedded resources (such as PayPal, Zooz, Samsung Pen and others).

- Bug fixes and other minor improvements.

Note that B4A.xml was modified in this version. The highlighting styles section was not modified.
The Reflection library was updated to support the new version internal changes.

V2.02 is now available. You should use the same link as the link to v2.00.
This version fixes several issues related to CallSub and CallSubDelayed keywords.
 

nw11

Member
Licensed User
Longtime User
There are two possible locations for libraries. One is internal, in the location that Basic4android is installed and the other is configured under Tools - Configure Paths. In one of them you will find older version of these files.

i'm sorry .. maybe i have not correctly explained my problem .. now i re-post my error .. ( the version 2.00 is not able to find my sub when i called callsub command )

Originally Posted by nw11

i have installed the new version 2.0 and now i receive this error when callsub command is called ..

this is my code :

Sub Activity_Pause (UserClosed As Boolean)

If UserClosed = True Then
CallSub(service1, "disattivatimer")
Else
CallSub(service1, "attivatimer")
End If

End Sub


' this sub are under service1

Sub AttivaTimer
TimerService.Enabled = False
TimerService.Initialize("TimerService",5000) ' 5 secondi
SwTimer = 0
TimerService.Enabled=True
End Sub

Sub DisattivaTimer
TimerService.Enabled = False
TimerService.Initialize("TimerService",20000) ' 20 secondi
SwTimer = 0
TimerService.Enabled=True
End Sub

' this is the message i receive from the log

Partial wakeLock already held.
** Service (service1) Start **
Partial wakeLock already held.
** Activity (main) Pause, UserClosed = true **
main_activity_pause (java line: 761)

java.lang.Exception: Sub disattivatimer was not found.
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:176)
at anywheresoftware.b4a.keywords.Common.CallSub4(Comm on.java:793)
at anywheresoftware.b4a.keywords.Common.CallSub(Commo n.java:774)
at newudp.it.main._activity_pause(main.java:761)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:170)
at newudp.it.main.onPause(main.java:159)
at android.app.Activity.performPause(Activity.java:45 63)
at android.app.Instrumentation.callActivityOnPause(In strumentation.java:1198)
at android.app.ActivityThread.performPauseActivity(Ac tivityThread.java:2705)
at android.app.ActivityThread.performPauseActivity(Ac tivityThread.java:2674)
at android.app.ActivityThread.handlePauseActivity(Act ivityThread.java:2652)
at android.app.ActivityThread.access$800(ActivityThre ad.java:127)
at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1170)
at android.os.Handler.dispatchMessage(Handler.java:99 )
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.jav a:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:557)
at dalvik.system.NativeStart.main(Native Method)
main_activity_pause (java line: 761)

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.Exception: Sub disattivatimer was not found.
at anywheresoftware.b4a.keywords.Common.CallSub4(Comm on.java:798)
at anywheresoftware.b4a.keywords.Common.CallSub(Commo n.java:774)
at newudp.it.main._activity_pause(main.java:761)


the project is exactly the same of 1.90 version ..

please help !!
 
Upvote 0

arenaluigi

Well-Known Member
Licensed User
Longtime User

Very usefull!!!!:sign0098:
 
Upvote 0

hackhack

Active Member
Licensed User
Longtime User
I'd be more impressed if someone would answer my damn questions.

How do you know if the OS has scaled your text, how do you prevent it - how do you read what size the OS wants to render your text at...
 
Upvote 0

hackhack

Active Member
Licensed User
Longtime User
Does 2.0 handle this?

Well, ignoring people is very rude. Thus the subject title, however I'll delete it if i can.
(And I couldn't - but you feel free)
 
Last edited:
Upvote 0

bluedude

Well-Known Member
Licensed User
Longtime User
Trying to get the Zooz stuff running again in combination with UI (anim) components but during compilation I get the following error:

jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: res/drawable-hdpi/btn_code_lock_default.png

There is no duplicate entry of that file.

Any ideas?
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
@hackhack, I didn't ignore your first question. My answer is that I'm not familiar with any API that allows you to treat this case. I tried searching for such and didn't find. As this is a custom behavior of HTC Sense it is possible that there is no such API.
When I don't know the answer I usually do not answer.

@bluedude, you should delete all the Zooz resource files from the res folder. They will be copied from the jar file.

It is better to start new threads for such questions.
 
Upvote 0

geekonweb

New Member
Licensed User
Longtime User
eligible to free upgrade

Hi Erel

I purchased Basic4android - - Standard Version with 2 years of Extended Download Warranty. Won't I be able to upgrade for free?
 
Upvote 0

ondesic

Active Member
Licensed User
Longtime User
First off, wonderful job. Classes are a hit! One question. Does this version allow the user to input an alias for the keystore? (crossing my finger and praying)
 
Upvote 0

slydog43

Member
Licensed User
Longtime User
Thanks

Thanks for another great upgrade, Can't believe people are complaining about things. Erel has always giving top notch support and B4A is one of the BEST products I have ever used and I go back to PDP-11's.
 
Upvote 0

junglejet

Active Member
Licensed User
Longtime User
Thanks for another great upgrade, Can't believe people are complaining about things. Erel has always giving top notch support and B4A is one of the BEST products I have ever used and I go back to CP/M.

On another subject:
it seems code modules that consist of nothing more than comments are not accepted by the compiler anymore. It throws an error that sub process_global is missing. This certainly is very clean, but misusing a code module for an open item list or references, all as comments, was very easy to handle.
Can we get that back?

Thanks
Andy
 
Upvote 0

JoanRPM

Active Member
Licensed User
Longtime User
Thanks Erel.
Now we have to begin to study "classes".
I hope it is as powerful as they say.
Greetings.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…