German B4A 11.80 Setup

so27

Active Member
Licensed User
Longtime User
Hallo, ich muss vor dem Update auf die aktuelle Version von B4A experimentieren. Kann ich noch irgendwo zur Sicherheit die Version 11.80 beziehen?
 

klaus

Expert
Licensed User
Longtime User
Kann ich noch irgendwo zur Sicherheit die Version 11.80 beziehen?
Ja.
Du kannst B4A in einen anderen Ordner speichern.
Ich speichere jedes mal wenn eine neue Version veröffentlicht wird in einen anderen Ordner.
Uns so habe ich ältere Versionen immer zur Verfügung.
 

GMan

Well-Known Member
Licensed User
Longtime User
Ja.
Du kannst B4A in einen anderen Ordner speichern.
Ich speichere jedes mal wenn eine neue Version veröffentlicht wird in einen anderen Ordner.
Uns so habe ich ältere Versionen immer zur Verfügung.
Mache ich auch genau so - sicher ist sicher ;-)
 

so27

Active Member
Licensed User
Longtime User
Ah okay, ich dachte das gibt Probleme mit irgendwelchen Eintragungen in der Registry.
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Kann ich noch irgendwo zur Sicherheit die Version 11.80 beziehen?
Ich habe seit ein paar Tagen die aktuelle Version 12.50 und damit diverse Probleme beim Compilieren ...
Wo kann ich denn die "alte" Version 11.80 herbekommen?
  • habe sie leider nicht gespeichert
  • leider auch nicht in einem separaten Ordner installiert
Gibt es noch irgendwo einen Link zur Version 11.80 oder kann Jemand diese bitte hier irgendwo reinstellen?

Im Voraus besten Dank!
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Hallo Klaus,

bis vor kurzem hatte ich auf meiner Festplatte die B4A-Version 11.80 + Oracle JDK 8 installiert.

Dann habe ich eine neue Festplatte eingebaut und gleich die neueste B4A-Version 12.50 (allerdings jetzt mit OpenJDK 14 + OpenJFX 14) installiert.
Vielleicht ist ja das schon der Grund für die Fehlermeldungen (betreffend calendar2 und andere)?

Im Moment sollte ich nur ein paar kleine Dinge an einer internen App ändern, daher der Wunsch, aus Gründen der Zeitersparnis erstmal mit der Version 11.80 weiterzumachen.

Mir ist klar das ich das System füher oder später auf 12.50 und weitere Versionen upgraden sollte, aber zunächst möchte ich die (aus meiner Sicht "schnellere" Lösung) ausprobieren.
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Meine Frage war eigentlich welche Fehlermeldungen Du bekommst.
1)
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at anywheresoftware.b4a.keywords.Common$14.run(Common.java:1750)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:132)
at jothasoft.de.fivestars.modul_80._createdetector(modul_80.java:1818)
at jothasoft.de.fivestars.modul_80$ResumableSub_B4XPage_Created.resume(modul_80.java:442)
at anywheresoftware.b4a.keywords.Common$14.run(Common.java:1748)
... 8 more
Caused by: com.google.android.gms.common.GooglePlayServicesMissingManifestValueException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:8)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:2)
at com.google.android.gms.dynamite.DynamiteModule.zzf(com.google.android.gms:play-services-basement@@18.1.0:6)
at com.google.android.gms.dynamite.DynamiteModule.zza(com.google.android.gms:play-services-basement@@18.1.0:8)
Das hat folgenden Grund:
... wobei es anscheinend egal ist, wo die AdditionalJar steht ...
B4X:
#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
    '-- wegen QR_Code_Scanner --
    #AdditionalJar: com.google.android.gms:play-services-vision
#End Region

--> Das habe ich jetzt erst gesehen:
Caused by: com.google.android.gms.common.GooglePlayServicesMissingManifestValueException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@Integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:8)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:2)
at com.google.android.gms.dynamite.DynamiteModule.zzf(com.google.android.gms:play-services-basement@@18.1.0:6)
at com.google.android.gms.dynamite.DynamiteModule.zza(com.google.android.gms:play-services-basement@@18.1.0:8)
 
Last edited:

JOTHA

Well-Known Member
Licensed User
Longtime User
Ich habe das in den Manifest Editor eingetragen:
B4X:
AddApplicationText(
<meta-data
android:name="com.google.android.gms.version"
android:value="@Integer/google_play_services_version" />
)
Die Fehlermeldung erscheint nach diesem Code:
B4X:
Private Sub CreateDetector (Codes As List)
Dim ctxt As JavaObject
        ctxt.InitializeContext
        Dim builder As JavaObject
        builder.InitializeNewInstance("com/google/android/gms/vision/barcode/BarcodeDetector.Builder".Replace("/", "."), Array(ctxt))
        Dim barcodeClass As String = "com/google/android/gms/vision/barcode/Barcode".Replace("/", ".")
        Dim barcodeStatic As JavaObject
        barcodeStatic.InitializeStatic(barcodeClass)
        Dim format As Int
        For Each formatName As String In Codes
            format = Bit.Or(format, barcodeStatic.GetField(formatName))
        Next
        builder.RunMethod("setBarcodeFormats", Array(format))
        detector = builder.RunMethod("build", Null)
        Dim operational As Boolean = detector.RunMethod("isOperational", Null)
        If operational = False Then
            Toast.Show("Failed to create detector")
        End If
        L20_P_QR_btnStartStop.Enabled = operational
End Sub
 

JOTHA

Well-Known Member
Licensed User
Longtime User
Ab diesem Punkt erscheint die Fehlermeldung:
Ab hier ...:
        detector = builder.RunMethod("build", Null)
        
        Dim operational As Boolean = detector.RunMethod("isOperational", Null)
        
        If operational = False Then
            Toast.Show("Failed to create detector")
        End If

        L80_P_QR_Button_START_STOP.Enabled = operational
 

JOTHA

Well-Known Member
Licensed User
Longtime User
PROBLEM GELÖST (SOLVED)

Im Manifesteditor musste folgendes eingetragen werden:
B4X:
AddApplicationText(
   <activity android:name="com.google.android.gms.common.api.GoogleApiActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:exported="false"/>
    <meta-data
  android:name="com.google.android.gms.version"
  android:value="@integer/google_play_services_version" />
)

AddApplicationText(
<meta-data
    android:name="com.google.android.gms.vision.DEPENDENCIES"
    android:value="barcode,,face" />
)

Cheers :)
 
Top