Other B4A v8.0 has been released!

Discussion in 'Android Questions' started by Erel, Mar 20, 2018.

  1. Erel

    Erel Administrator Staff Member Licensed User

    I'm very happy to release B4A v8.0. This update includes many important improvements and makes it simpler to target the latest versions of Android.

    [​IMG]
    (image source: android.com)

    As explained in this tutorial, all apps will soon need to target sdk version 26 (Android 8). This is a new policy of Google and it has many consequences for app developers. Many of the improvements in B4A v8.0 help developers with this task.

    Improvements:
    • The process of starting the app from the background was rewritten to comply with targetSdkVersion 26 requirements.
    • Push notifications and other features that cause apps to start from the background should be more reliable due to changes in the way services are started. A wake lock is automatically held when a receiver receives an intent. The wake lock is released when the service starts.
    • Automatic foreground mode: https://www.b4x.com/android/forum/threads/automatic-foreground-mode.90546/
    • Notification object rewritten to work with targetSdkVersion 26. In most cases you don't need to change anything. Notification.SetInfo or Notification.SetInfo2 should be the last calls before you show the notification.
    • Notification.SetInfo / SetInfo2 accept CharSequences so it can work with CSBuilder.
    • StartServiceAt / StartServiceAtExact rewritten to work with targetSdkVersion 26 and they are now more reliable.
    • Notification.Initialize2 - Allows to set the notification channel importance level.
    • Better support for AAR libraries: jni folders (native libraries) are handled properly, assets and resources from internal jars are added to the project.
    • #AdditionalJar with ReferenceOnly - Allows referencing jars that are only used as a reference during compilation. This is required for more complex libraries such as DJI library.
    • Signing key size is explicitly set to avoid issues with newer versions of Java.
    • B4A Sdk Manager v3.25 - Bug fixes and support for Google based AVDs.
    • Screenshot tool modified to work with latest versions of Android SDK.
    • MediaPlayer.IsInitialzied method.
    • Manifest editor macros - Macros can be added to libraries or zip files. For example to set a light theme based on Android version:
      Code:
      CreateResourceFromFile(Macro, Themes.LightTheme)
      Unless you are setting a custom theme then it is recommended to use either Themes.LightTheme or Themes.DarkTheme.

      Firebase push notifications:
      Code:
      CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
      CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
      CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)
      https://www.b4x.com/android/forum/threads/new-feature-manifest-macros.90398/#content

    • Custom class templates - Class templates can be added to libraries.
      For example if you add the XUI library to your project then you will have an option to add a custom view based on XUI:

      [​IMG]

      Libraries can include multiple templates and any library can include templates.
    • #SignKeyAlias attribute - Allows overriding the default signing key alias.
    • Firebase, xCustomListView and KeyValueStore (2) are internal libraries.
    • Libraries deprecation messages in the IDE:

      [​IMG]

    • Fix for a very long standing issue where the activity code could have been executed while the activity is paused which leads to a hard to reproduce NullPointerException.
    • BADoclet (tool to generate libraries XML) v1.07 - adds support for custom class templates.
    • Other bug fixes and minor improvements.

    Backward compatibility notes
    • Notification.SetInfo or SetInfo2 should be the last calls before you use the notification. Note that standard notifications created with previous versions of B4A will not work at all on Android 8+ when targetSdkVersion is 26+.
    • Adding a service, other than the Starter service, will add the WAKE_LOCK permission. This is a non-dangerous permission.
      As mentioned above a wake lock is held automatically when a service is started from the background and until Service_Start is called. You can remove this permission with:
      Code:
      RemovePermission(android.permission.WAKE_LOCK)
      Everything will still work, however the service might fail to start from the background in some cases.

    Developers eligible for a free upgrade should receive an email with upgrade instructions. Other developers will receive a renewal offer.
     
  2. warwound

    warwound Expert Licensed User

    Where can the latest version of BADoclet be downloaded from?
    A forum search leads me to Creating libraries for Basic4android where BADoclet is attached and has been downloaded 3263 times.
    Presumably that is an old version?
     
    Rockefeller Goldman likes this.
  3. Erel

    Erel Administrator Staff Member Licensed User

  4. Juzer Hussain

    Juzer Hussain Active Member Licensed User

    Hi Erel,

    I use B4A Ver. 5.0 I want to upgrade to 8.0 Standard version.
    This version if i install afresh will it work or it requires previous versions to be already installed.
    Shall i directly buy from the store or i need to do something more.

    Juzer
     
  5. Erel

    Erel Administrator Staff Member Licensed User

    It doesn't require any previous version. Your existing projects will work. You should use new B4A Sdk Manager to download the latest version of Android SDK.

    Wait for the mail with the renewal option. If you haven't received it in two hours then contact support@basic4ppc.com.
     
    Johan Schoeman likes this.
  6. Juzer Hussain

    Juzer Hussain Active Member Licensed User

    I received mail with option to "renew liscence".
    Shall I use this link for B4A Standard Version 8.0
     
  7. Erel

    Erel Administrator Staff Member Licensed User

    You can choose to upgrade to whichever version you like.
     
  8. sorex

    sorex Expert Licensed User

    does this mean that we need to compile everything with this version to suit their new rules?
     
  9. Erel

    Erel Administrator Staff Member Licensed User

  10. sorex

    sorex Expert Licensed User

    Thanks, I'll go through it later today.
     
  11. pesquera

    pesquera Active Member Licensed User

    What does "standard notifications" mean?
    Should we take care about something else of SetInfo/SetInfo2?
     
  12. Erel

    Erel Administrator Staff Member Licensed User

    pesquera likes this.
  13. corwin42

    corwin42 Expert Licensed User

    I guess the "custom class templates" feature works only with classes and not for Activity modules? For the AppCompat library it would be great to have this feature for Activites, too so the template could automatically add the "#Extends: android.support.v7.app.AppCompatActivity" line. I also would like to add some comments with the Manifest additions for the theme.
    Or the Preference library could provide a template for preference Activites.

    Even for services this would be nice. I think of something like homescreen widget templates.
     
  14. Erel

    Erel Administrator Staff Member Licensed User

    That's true.
     
    corwin42 likes this.
  15. JCO

    JCO Member Licensed User

    This seems to be a big change.
    Would you advice to install this version on a different folder keeping the previous version in case there are problems with existing projects or is that not necessary?
     
  16. Erel

    Erel Administrator Staff Member Licensed User

    I don't think that it is needed. You can always reinstall v7.80 if you encounter any issue.

    Older versions of B4A are less relevant now as they will not work properly with Android 8+ once the targetSdkVersion is set to 26+.
     
  17. pesquera

    pesquera Active Member Licensed User

    Does NotifiticationListener Libary run fine with Android 8.1.0?
    https://www.b4x.com/android/forum/t...er-library-notificationlistenerservice.35630/
    I compiled the app with B4A 8.0 and change manifest with android:targetSdkVersion="27"
    Now, the notification messages are not catched any more
    The same app installed on a device with Android 6.0.1 is catching Ok
    Where can I take a look into my code?
    Thanks

    EDIT:
    Also tried with the example from the Library, there aren't logs on Sub Listener_NotificationPosted
    FYI: In the example, should fix Notification (n.SetInfo)

    Is the only device that I have with Android 8+
     
    Last edited: Mar 22, 2018
  18. Erel

    Erel Administrator Staff Member Licensed User

    Please start a new thread for this. It should work.
     
    pesquera likes this.
  19. Markos

    Markos Active Member Licensed User

    I have upgraded to latest Java and Android etc. I will update the manifest to reflect the latest targetSdkVersion / minSdkVersion. If my project compiles without errors can I assume all is well or do I have to check how my Aoo behaves to know all is well etc?
     
  20. Nimbus4

    Nimbus4 Member Licensed User

    Question : If I use B4A v7.8 and DO NOT set the target version to 26+, will apps work on Android 8+?
    Question : How do I go back to B4A v7.8?
    Question : Can apps made with B4A v7.8 be published in the PlayStore?
    Question : Can I have a hug? lol
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice