Android Question Problem with JdbcSQL compilation

Discussion in 'Android Questions' started by Marco Gioia, Apr 27, 2019.

  1. Marco Gioia

    Marco Gioia Member Licensed User

    Hi all,

    I tried everything, but nothing works!

    (see the attachment)

    What should I do?
     

    Attached Files:

  2. Erel

    Erel Administrator Staff Member Licensed User

    Please post the code and error message as text.
     
  3. Marco Gioia

    Marco Gioia Member Licensed User

    The issue not depending on the code (I used the JdbcSQLExample.zip)

    Code:
    #Region  Project Attributes
       
    #ApplicationLabel: B4A Example
       
    #VersionCode: 1
       
    #VersionName:
       
    'SupportedOrientations possible values: unspecified, landscape or portrait.
       #SupportedOrientations: unspecified
       
    #CanInstallToExternalStorage: False
    #End Region

    #Region  Activity Attributes
       
    #FullScreen: False
       
    #IncludeTitle: True
    #End Region
    #AdditionalJar: mysql-connector-java-8.0.15.jar
    #BridgeLogger: true
    Sub Process_Globals
       
    'These global variables will be declared once when the application starts.
       'These variables can be accessed from all modules.

    End Sub

    Sub Globals
       
    'These global variables will be redeclared each time the activity is created.
       'These variables can only be accessed from this module.

       
    Private ProgressBar1 As ProgressBar
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
       
    'Do not forget to load the layout file created with the visual designer. For example:
       Activity.LoadLayout("1")

    End Sub

    Sub Activity_Click
       ProgressBar1.Visible = 
    True
       
    Wait For (CallSub(Starter, "ListAnimals")) Complete (Result As Boolean)
       
    Log("Completed. Success: " & Result)
       ProgressBar1.Visible = 
    False
    End Sub

    Sub Activity_Resume

    End Sub

    Sub Activity_Pause (UserClosed As Boolean)

    End Sub
    Code:
    #Region  Service Attributes
       
    #StartAtBoot: False
       
    #ExcludeFromLibrary: True
    #End Region

    Sub Process_Globals
       
    Public mysql As JdbcSQL
       
    Private driver As String = "com.mysql.jdbc.Driver"
       
    Private jdbcUrl As String = "jdbc:mysql://192.168.0.6/test"
       
    Private Username As String = "username"
       
    Private Password As String = "password"
    End Sub

    Sub Service_Create
       
    'need to disable it as reading from large JdbcResultSet will cause network requests to be sent on the main thread.
       DisableStrictMode
    End Sub

    Sub Service_Start (StartingIntent As Intent)

    End Sub

    Sub DisableStrictMode
       
    Dim jo As JavaObject
       jo.InitializeStatic(
    "android.os.Build.VERSION")
       
    If jo.GetField("SDK_INT") > 9 Then
           
    Dim policy As JavaObject
           policy = policy.InitializeNewInstance(
    "android.os.StrictMode.ThreadPolicy.Builder"Null)
           policy = policy.RunMethodJO(
    "permitAll"Null).RunMethodJO("build"Null)
           
    Dim sm As JavaObject
           sm.InitializeStatic(
    "android.os.StrictMode").RunMethod("setThreadPolicy"Array(policy))
       
    End If
    End Sub

    Sub Connect As ResumableSub
       mysql.InitializeAsync(
    "mysql", driver, jdbcUrl, Username, Password)
       
    Wait For MySQL_Ready (Success As Boolean)
       
    If Success = False Then
           
    Log("Check unfiltered logs for JDBC errors.")
       
    End If
       
    Return Success
    End Sub

    Sub CloseConnection
        mysql.Close
    End Sub

    Sub ListAnimals As ResumableSub
       
    Wait For (Connect) Complete (Success As Boolean)
       
    If Success Then
           
    Try
               
    Dim sf As Object = mysql.ExecQueryAsync("mysql""SELECT id, name FROM animals WHERE id > ?"Array(300))
               
    Wait For (sf) mysql_QueryComplete (Success As Boolean, Crsr As JdbcResultSet)
               
    If Success Then
                   
    Do While Crsr.NextRow
                       
    Log($"Id: ${Crsr.GetInt("id")}, Name: ${Crsr.GetString("name")}"$)
                   
    Loop
                   Crsr.Close
               
    End If
           
    Catch
               Success = 
    False
               
    Log(LastException)
           
    End Try
           CloseConnection
       
    End If
       
    Return Success
    End Sub

    Sub Service_TaskRemoved
       
    'This event will be raised when the user removes the app from the recent apps list.
    End Sub

    'Return true to allow the OS default exceptions handler to handle the uncaught exception.
    Sub Application_Error (Error As Exception, StackTrace As StringAs Boolean
       
    Return True
    End Sub

    Sub Service_Destroy

    End Sub

    JAVA:
    C:\Program Files\Java\jdk1.8.0_211\bin

    i tried with:
    mysql-connector-java-8.0.15.jar
    mysql-connector-java-8.0.14.jar
    mysql-connector-java-8.0.13.jar
    mysql-connector-java-8.0.12.jar
    mysql-connector-java-8.0.11.jar


    Manifest:
    'This code will be applied to the manifest file during compilation.
    'You do not need to modify it in most cases.
    'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
    AddManifestText(
    <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="28"/>
    <supports-screens android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"/>)
    SetApplicationAttribute(android:icon, "@drawable/icon")
    SetApplicationAttribute(android:label, "$LABEL$")
    'End of default text.


    Error:
    B4A Versione: 8.80
    Analisi del Codice. (0.00s)
    Building folders structure. (0.08s)
    Compilazione del codice. (0.01s)
    Compilazione del codice di layouts (0.00s)
    Organizzazione Librerie. (0.00s)
    Generazione file R. (0.15s)
    Compilazione del codice Java prodotto. (2.92s)
    Conversione byte code - ottimizzazione dex. Error
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
    UNEXPECTED TOP-LEVEL EXCEPTION:
    java.lang.RuntimeException: Translation has been interrupted
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:692)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:315)
    at com.android.dx.command.dexer.Main.runDx(Main.java:293)
    at com.android.dx.command.dexer.Main.main(Main.java:249)
    at com.android.dx.command.Main.main(Main.java:94)
    Caused by: java.lang.InterruptedException: Too many errors
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:684)
    ... 4 more
     
  4. Erel

    Erel Administrator Staff Member Licensed User

    You are trying to use a JDBC driver that is not compatible with Android.

    You will need to use an older version such as: mysql-connector-java-5.1.38-bin
     
  5. Marco Gioia

    Marco Gioia Member Licensed User

    Ok!
    Do you have a link for mysql-connector-java-5.1.38-bin?
     
  6. DonManfred

    DonManfred Expert Licensed User

  7. Marco Gioia

    Marco Gioia Member Licensed User

    it works!
    Thank you so much :)
     
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