Hola a Tod @ s:
Soy un vetusto programador en proceso de reciclado y me estoy adentrando en el mundo del B4A.
Estoy haciendo una aplicación que tiene que obtener datos de una base Sql para lo que utilizo la librería JdbcSQL (ver. 1.5)
Tengo el siguiente código que en modo Debug me funciona correctamente:
Simplemente determina el número de ordenes nuevas para un determinado almacén y como he comentado, en modo Debug funciona correctamente.
Sin embargo, en modo Release, la línea 12 que he marcado genera el siguiente error:
main_compruebaregistrosnuevos (java line: 952)
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1460)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:108)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at net.sourceforge.jtds.jdbc.SharedSocket.sendNetPacket(SharedSocket.java:686)
at net.sourceforge.jtds.jdbc.RequestStream.putPacket(RequestStream.java:570)
at net.sourceforge.jtds.jdbc.RequestStream.flush(RequestStream.java:518)
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1080)
at net.sourceforge.jtds.jdbc.TdsCore.microsoftPrepare(TdsCore.java:1219)
at net.sourceforge.jtds.jdbc.JtdsConnection.prepareSQL(JtdsConnection.java:708)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:1028)
at anywheresoftware.b4j.objects.SQL.ExecQuery2(SQL.java:343)
at anywheresoftware.b4j.objects.SQL.ExecQuerySingleResult2(SQL.java:391)
at Whs.Verial.main._compruebaregistrosnuevos(main.java:952)
at Whs.Verial.main$ResumableSub_Activity_Create.resume(main.java:536)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:250)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:190)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:176)
at anywheresoftware.b4a.keywords.Common$14.run(Common.java:1761)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Agradecería cualquier tipo de ayuda porque no sé cual puede ser el motivo y ya no sé por donde tirar.
Gracias a tod@s
Un saludo
Soy un vetusto programador en proceso de reciclado y me estoy adentrando en el mundo del B4A.
Estoy haciendo una aplicación que tiene que obtener datos de una base Sql para lo que utilizo la librería JdbcSQL (ver. 1.5)
Tengo el siguiente código que en modo Debug me funciona correctamente:
B4X:
Public Sub CompruebaRegistrosNuevos
Dim SqlCuentaRegistros As String
Dim NumeroDeOrdenesNuevas As Int
If mysql.IsInitialized Then
If Almacen="0" Then
SqlCuentaRegistros="SELECT Count(*) FROM DocCli T0 WHERE (T0.VerialID)>" & UltimaOrden
Else
SqlCuentaRegistros="SELECT Count(*) FROM DocCli T0 WHERE (T0.VerialID)>" & UltimaOrden &" And (T0.ID_Almacen)=" & Almacen
End If
NumeroDeOrdenesNuevas = mysql.ExecQuerySingleResult(SqlCuentaRegistros)
If NumeroDeOrdenesNuevas<>0 Then
CargaDatosPedidosNuevos
End If
End If
End Sub
Simplemente determina el número de ordenes nuevas para un determinado almacén y como he comentado, en modo Debug funciona correctamente.
Sin embargo, en modo Release, la línea 12 que he marcado genera el siguiente error:
main_compruebaregistrosnuevos (java line: 952)
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1460)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:108)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at net.sourceforge.jtds.jdbc.SharedSocket.sendNetPacket(SharedSocket.java:686)
at net.sourceforge.jtds.jdbc.RequestStream.putPacket(RequestStream.java:570)
at net.sourceforge.jtds.jdbc.RequestStream.flush(RequestStream.java:518)
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1080)
at net.sourceforge.jtds.jdbc.TdsCore.microsoftPrepare(TdsCore.java:1219)
at net.sourceforge.jtds.jdbc.JtdsConnection.prepareSQL(JtdsConnection.java:708)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:1028)
at anywheresoftware.b4j.objects.SQL.ExecQuery2(SQL.java:343)
at anywheresoftware.b4j.objects.SQL.ExecQuerySingleResult2(SQL.java:391)
at Whs.Verial.main._compruebaregistrosnuevos(main.java:952)
at Whs.Verial.main$ResumableSub_Activity_Create.resume(main.java:536)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:250)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:190)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:176)
at anywheresoftware.b4a.keywords.Common$14.run(Common.java:1761)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Agradecería cualquier tipo de ayuda porque no sé cual puede ser el motivo y ya no sé por donde tirar.
Gracias a tod@s
Un saludo