HDroidGUI

3,652 views
Skip to first unread message

alkresin

unread,
Feb 22, 2015, 6:34:43 AM2/22/15
to harbou...@googlegroups.com
Hi,

I just created two new projects on the github:

   https://github.com/alkresin/HDroidGUI  - HDroidGUI - a new Android GUI framework for Harbour ( or Harbour GUI framework for Android :) )
   https://github.com/alkresin/hdcalcul - a calculator sample, which uses the HDroidGUI.

The documentation, as usually :), delayed. I'll create a web page later.
Pay attention to hdroidgui/utils/newproject.prg. It is a standalone utility, which creates a new project, based on HDroidGUI. Hdcalcul was created with it.

Just to have an idea how it looks, below is a source of hdcalcul:

#include "hdroidgui.ch"

FUNCTION HDroidMain

   LOCAL oActivity, oLayV, oLayH1, oBtn1, oEdit1, oText1

   INIT WINDOW oActivity TITLE "Calculator"
   
      BEGIN LAYOUT oLayV SIZE MATCH_PARENT,MATCH_PARENT
   
         BEGIN LAYOUT oLayH1 HORIZONTAL SIZE MATCH_PARENT,WRAP_CONTENT

         EDITBOX oEdit1 HINT "Input an expression" SIZE 0,MATCH_PARENT

         BUTTON oBtn1 TEXT "Ok" TEXTCOLOR 255 SIZE WRAP_CONTENT,WRAP_CONTENT ;
              ON CLICK {||onBtn1(oEdit1,oText1)}

         END LAYOUT oLayH1

         TEXTVIEW oText1 TEXTCOLOR 10485760 BACKCOLOR "#FFFFFF" SIZE MATCH_PARENT,MATCH_PARENT
   
      END LAYOUT oLayV

   RETURN oActivity

STATIC Function OnBtn1( oEdit1, oText1 )
   LOCAL s, xRez, bOldError, lRes := .T.

   s := oEdit1:GetText()

   bOldError := ErrorBlock( { |e|break( e ) } )
   BEGIN SEQUENCE
      xRez := &( Trim( s ) )
   RECOVER
      xRez := "Error..."
   END SEQUENCE
   ErrorBlock( bOldError )

   oText1:SetText( Iif( xRez == Nil, "Nil", Iif( Valtype(xRez)=="A", "Array", ;
         Transform( xRez, "@B" ) ) + Chr(10)+Chr(13) + oText1:GetText() ) )

   RETURN "1"




alkresin

unread,
Feb 22, 2015, 6:39:41 AM2/22/15
to harbou...@googlegroups.com
Just to clarify:

  It's not a full featured tool yet, it's only version 0.1. Don't expect too much from it.

Regards, Alexander.

roberto.p...@gmail.com

unread,
Feb 22, 2015, 6:54:05 PM2/22/15
to harbou...@googlegroups.com
Alex,

I've built HDroidGUI successfully, but I'm facing problems trying to build hdcalcul project.

When I execute 'build.bat' (at hdcalcul root) I've got the following error:

C:\hdcalcul>call c:\Android\sdk\build-tools\21.1.2/aapt.exe package -f -m -S res -J src -M
AndroidManifest.xml -I c:\Android\sdk/platforms/android-21/android.jar
ERROR: resource directory 'res' does not exist

If I create a 'res' directory at project root, the above error is cleared, but I've got the
following:

C:\hdcalcul>call c:\Android\sdk\build-tools\21.1.2/dx.bat --dex --output=bin/classes.dex ob
j \android\projects\hdroidgui\libs

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.00
00)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
<...>
...while parsing su/harbour/hDroidGUI/Harbour.class
<...>
...while parsing su/harbour/hdcalcul/MainActivity.class
<...>
...while parsing su/harbour/hDroidGUI/Harbour$1.class
<...>
...while parsing su/harbour/hDroidGUI/Harbour$BtnClickListener.class
<...>
...while parsing su/harbour/hDroidGUI/Harbour.class

5 errors; aborting

What I'm missing?

Any help is welcome.

TIA.

Regards,

Roberto.

alkresin

unread,
Feb 23, 2015, 2:19:03 AM2/23/15
to harbou...@googlegroups.com
Roberto,

 it seems that the libs/ directory doesn't exist. I wonder, why this could happen, because clear.bat, which is called from the build.bat, creates them.
In any case, there must be the following empty directories: bin, lib, libs, obj. They are created automatically by the newproject utility and the clear.bat does this.

Regards, Alexander.

roberto.p...@gmail.com

unread,
Feb 23, 2015, 3:05:16 PM2/23/15
to harbou...@googlegroups.com
 it seems that the libs/ directory doesn't exist. I wonder, why this could happen, because clear.bat, which is called from the build.bat, creates them.

The libs directory exists, then I've googled the error and it is reported by many users as an incompatibility between Java versions.

So, I've installed JDK7 (I've was using v8) and the errors are gone.

But a new error appeared, that I've solved creating the 'bin' folder at project root.

Finally, I've successfully created the hdcalcul apk.
 
I hope that this report be helpful for others using JDK8 facing the same problem.

Regards,

Roberto.

roberto.p...@gmail.com

unread,
Feb 24, 2015, 3:23:57 PM2/24/15
to harbou...@googlegroups.com
Hi All,

HDroidGUI setup tutorial for Android beginners:


Regards,

Roberto.

roberto.p...@gmail.com

unread,
Mar 2, 2015, 8:43:03 PM3/2/15
to harbou...@googlegroups.com
Alex,

I've created a simple HDROIDGUI application capable of run a .prg file (called autorun.prg) located at device download directory:

In the main window:

BUTTON oBtn1 TEXT 'Tap To Run ' + hd_getSysDir( 'down' ) + 'autorun.prg' TEXTCOLOR 255 SIZE 0,MATCH_PARENT FONT oFont  ON CLICK {||runprg()}
<...>

STATIC FUNCTION RUNPRG()
Local han, buf, cBuf 

cBuf := MEMOREAD( hd_getSysDir( 'down' ) + 'autorun.prg')
 
buf := hb_compileFromBuf( cBuf, "harbour", "/n" )

hb_hrbRun( buf )

RETURN "1"

It successfully run this (autorun.prg) code:

PROCEDURE MM
hd_MsgInfo('Hi! This is AutoRun.prg!!!')
RETURN
The question is: Could be possible to use HDroidGUI code on this 'memory-compiled' prg to create a new window?

And in such case: how could be that done? (I've failed in a couple of attempts).

The potential of this is huge, since you could not need to re-create hundred of times your apk during development process. You could simply develop on the device itself or copying the prg from a PC.

TIA.

Regards, 

Roberto.


alkresin

unread,
Mar 3, 2015, 1:26:09 AM3/3/15
to harbou...@googlegroups.com
> The question is: Could be possible to use HDroidGUI code on this 'memory-compiled' prg to create a new window?

 This wiil be possible very soon, it is one of primary goals in my task list.
 I spent last day writing an article about Android and HDroidGUI for my site, it is a very time consuming and difficult work for me - especially because it need to be written in two languages. And this is only a beginning of the stuff, which should be written: http://www.kresin.ru/en/android.html


> The potential of this is huge, since you could not need to re-create hundred of times your apk during development process. You could simply develop on the device itself or copying the prg from a PC.

 Yes, agree. The same as with hrbs - we can have one(!) application, which may do absolutely different tasks depending on which prg ( or hrb ) module is loaded from some repository in the web.

Regards, Alexander.

roberto.p...@gmail.com

unread,
Mar 3, 2015, 7:36:35 AM3/3/15
to harbou...@googlegroups.com
 Yes, agree. The same as with hrbs - we can have one(!) application, which may do absolutely different tasks depending on which prg ( or hrb ) module is loaded from some repository in the web

And then... using a generic hrb loader apk (looking for an 'autorun.hrb' located somewhere) the HDroidGUI programmer could not need Android SDK/NDK/Java at all. Using only one tool/language: Harbour/HDroidGUI. 

It sounds Great!

Regards,

Roberto.

hmpaquito

unread,
Mar 3, 2015, 11:56:21 AM3/3/15
to harbou...@googlegroups.com



It sounds Great!

Yes, it sounds to Fivetouch :-) 

roberto.p...@gmail.com

unread,
Mar 3, 2015, 1:44:22 PM3/3/15
to harbou...@googlegroups.com

It sounds Great!

Yes, it sounds to Fivetouch :-) 

The concept of an .apk serving as a run-time for a programming tool is not new. RFO BASIC exists since 2011 :)

From the official description: "RFO BASIC! is a dialect of Dartmouth Basic that allows you to write and run programs directly on your Android device."

And Harbour function hb_compilefrombuf() is not new either :)

Regards,

Roberto.

alkresin

unread,
Mar 5, 2015, 1:00:12 PM3/5/15
to harbou...@googlegroups.com
HDroidGUI 0.2 build 2 is available now from http://www.kresin.ru/en/hdroid.html .
HDCalcul 1.1 sample application is there, too.

I hope that I will prepare some documentation soon.
It is possible now to create the second window ( see how it is done via HDCalcul Help menu item ), simple dialogs. Few new functions added.

Regards, Alexander.

alkresin

unread,
Mar 11, 2015, 2:32:41 PM3/11/15
to harbou...@googlegroups.com
HDroidGUI v.0.2 build 4 is available.
Timer and Notifications has been added. Also, it is possible now to use strings from resources.
Documentation page http://www.kresin.ru/hdroiddoc.html is added (work in progress), it is in Russian for now, the translation will be later.

Regards, Alexander.

roberto.p...@gmail.com

unread,
Mar 14, 2015, 8:13:42 AM3/14/15
to harbou...@googlegroups.com
Alexander,

Just a couple of things for a future wish list:

1. Precompiled contrib libraries: Specially those related with remote data access (hbtip, hbmysql, hbnetio, rddsql, etc.)

2. A widget to show tabular data.

Both things go in the same direction, since is very likely that the main purpose of a Harbour mobile app, be (most of times) to show/manipulate remote data.

Thanks again for your great work.

Regards,

Roberto.


Franz

unread,
Mar 16, 2015, 8:03:57 AM3/16/15
to harbou...@googlegroups.com
I cannot build hbcalcul, I got this error. Where I am wrong ?
Thanks
Franz
 
C:\hdcalcul>call C:\PROGRA~1\java\jdk1.7.0_75/bin/javac -d obj -cp c:\Android\sd
k/platforms/android-22/android.jar;\android\projects\hdroidgui\libs -sourcepath
src src/su\harbour\hdcalcul/*.java  1>errore_java.out
src\su\harbour\hdcalcul\DopActivity.java:25: error: cannot find symbol
       sId = MainApp.harb.sActId;
                         ^
  symbol:   variable sActId
  location: variable harb of type Harbour
1 error

alkresin

unread,
Mar 17, 2015, 4:36:04 AM3/17/15
to harbou...@googlegroups.com
> I cannot build hbcalcul, I got this error. Where I am wrong ?
> ...

> src\su\harbour\hdcalcul\DopActivity.java:25: error: cannot find symbol
>        sId = MainApp.harb.sActId;
>                          ^  symbol:   variable sActId

 That was because I didn't update the hdcalcul package on my site.
Now the hdcalcul-1.4 is uploaded and it should compile normally with the latest HDroidGUI.

Regards, Alexander.

alkresin

unread,
Mar 17, 2015, 4:51:42 AM3/17/15
to harbou...@googlegroups.com
1. Precompiled contrib libraries: Specially those related with remote data access (hbtip, hbmysql, hbnetio, rddsql, etc.)

  I keep this in mind, but not all contrib libraries can be  used, because some of them depends on external libraries, which may be absent. For example, there are serious problems with porting hbmysql and rddsql.
We need appropriate so libraries for them (libmysql.so), but they are absent in Android. To be more accurate, the documented API is absent for Android. There are many questions about it in stackoverflow - and the most common answer is that the only way to access remote database of any type from Android is the using of a web service ( php, etc. ).


2. A widget to show tabular data.

  Yesterday I've added a Browse widget to HDroidGUI and a sample, which demonstrates it : https://github.com/alkresin/hddbf

Regards, Alexander.

Przemyslaw Czerpak

unread,
Mar 17, 2015, 5:44:27 AM3/17/15
to 'alkresin' via Harbour Users
On Tue, 17 Mar 2015, 'alkresin' via Harbour Users wrote:

Hi Alexander,

> > 1. Precompiled contrib libraries: Specially those related with remote data
> > access (hbtip, hbmysql, hbnetio, rddsql, etc.)
> I keep this in mind, but not all contrib libraries can be used, because
> some of them depends on external libraries, which may be absent. For
> example, there are serious problems with porting hbmysql and rddsql.
> We need appropriate so libraries for them (libmysql.so), but they are
> absent in Android. To be more accurate, the documented API is absent for
> Android. There are many questions about it in stackoverflow - and the most
> common answer is that the only way to access remote database of any type
> from Android is the using of a web service ( php, etc. ).

Android for ARMs is binary compatible with Rasberry Pi.
So all what you need are static libraries for this system
linked with your Android application.

best regards,
Przemek

Franz

unread,
Mar 19, 2015, 7:18:22 AM3/19/15
to harbou...@googlegroups.com
Hi Alexander,
Your HDroidGUI is a very good job. I am writing my first android app that have to talk with a Harbour Windows prg. I use NETIO lib for local and remote access and would be great if also android app could use NETIO lib to get data from internet. Przemek say that is possible to use this (and others) lib from Rasberry Pi. but I don't know as to do. Can you add this lib to your package ?
(Sorry for my bad english).
Ciao
Franz

Przemyslaw Czerpak

unread,
Mar 19, 2015, 8:17:56 AM3/19/15
to harbou...@googlegroups.com
Hi,

HBNETIO does not need any external libraries so it's fully
supported by all Harbour builds which supports TCP/IP connections
so also Android ones. You do not need to use Raspberry Pi builds
for such things. Only for external 3-rd party libraries if you
cannot find native Android ports and you cannot build library
from source code (preferred option).

BTW I'm building full feature Harbour applications using GTQTC
as Android .APK and they work without any problems. QT has
command line tools 'androiddeployqt' which allows to create
such applications just from command line without touching
QtCreator or other QT Gui tools. Anyhow it would be nice if
it can be replaced by HBMK2 plugin which will use Android
SDK only. With such plugin all Harbour users can immediately
create Android .APK from their existing console code for
desktop computers.
Alexander do you think you can create such plugin instead
of batch files and shell scripts used now?
Maybe Viktor can help?

best regards,
Przemek
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Harbour Users" group.
> Unsubscribe: harbour-user...@googlegroups.com
> Web: http://groups.google.com/group/harbour-users
>
> ---
> You received this message because you are subscribed to the Google Groups "Harbour Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Francesco Perillo

unread,
Mar 19, 2015, 8:39:21 AM3/19/15
to harbou...@googlegroups.com
On Thu, Mar 19, 2015 at 1:17 PM, Przemyslaw Czerpak <dru...@poczta.onet.pl> wrote:

BTW I'm building full feature Harbour applications using GTQTC
    as Android .APK and they work without any problems.

Interesting indeed !

We all knew it was doable, but is it also "usable"? I mean, does the software runs on a phone or a tablet? Is the screen readable? Did you have to adapt columns/rows?

Unfortunately I have a problem with my tablet, it is not recognized by adb... and on the phone is unusable....

alkresin

unread,
Mar 19, 2015, 8:48:24 AM3/19/15
to harbou...@googlegroups.com
> Can you add this lib to your package ?

 I will. The hbnetio doesn't depend on 3rd party libraries, so it isn't a problem. I've updated already the https://github.com/alkresin/libharbour4a, which contains scripts to build libharbour.so for Android, including there lines for hbnetio.

Regards, Alexander.

alkresin

unread,
Mar 19, 2015, 8:55:13 AM3/19/15
to harbou...@googlegroups.com
>   Alexander do you think you can create such plugin instead    of batch files and shell scripts used now?

  Sorry, I don''t use hbmk2 and I am not familiar enough with it. I still prefer batch and shell scripts, because when I look at the commands there, I understand, what I'm doing and why.

Regards, Alexander.


alkresin

unread,
Mar 20, 2015, 2:45:11 AM3/20/15
to harbou...@googlegroups.com
HDroidGUI v.0.3 build 3 is uploaded, see http://www.kresin.ru/en/hdroid.html . Hbnetio client is included.
Problems, feature requests, etc. may be reported to https://github.com/alkresin/HDroidGUI/issues

Hddbf sample is updated ( v. 1.2 ) - styles for buttons has been added.

Franz

unread,
Mar 20, 2015, 7:27:33 AM3/20/15
to harbou...@googlegroups.com
there are no new files on your site.
Ciao
Franz

alkresin

unread,
Mar 20, 2015, 12:24:11 PM3/20/15
to harbou...@googlegroups.com
> there are no new files on your site.

 Yes, really. I forgot to update links. Now they are on the place.

Regards, Alexander.

elch

unread,
Mar 21, 2015, 5:28:03 PM3/21/15
to harbou...@googlegroups.com
Hello Przemek,

the newest Quad-core Raspberry model B - 2 ( since 2 ? months available ) is ARM-v7 based,

all other Raspberry before are based on ARM-v6 -- maybe worth a note ?


best regards


---

to Alexander,


just a very very tiny note, i would have named it: HbDroidGUI :-)

alike 'Hb' is somehow the shortened form of Harbour ......

[ excuse, actually no need of such for me, but sure i have an eyelook for ... ]


best regards

Rolf

Zech Communicates

unread,
Mar 24, 2015, 8:36:12 PM3/24/15
to harbou...@googlegroups.com
http://pytesting.altervista.org/a-working-solution-for-hdroidgui-and-hdcalchddbf/ My working solution for HDroidGui because using the buildall.bat is not working for me. 

1. Copy harbour headers (.ch) from HDroidGUI\src\include and paste to your harbour\include installation folder eg C:\harbour\include
2. Change the paths in HDroidGUI\setenv.bat to reflect your paths
3. Open command prompt and call buildall.bat. If you get no errors well-done. I got errors and these are my work arround
4. After the errors go to HDroidGUI\jni and you will see some csourcefiles.This were harbour prg files from HDroidGUI\src\prg compiled to c source file. In HDroidGUI\src\prg folder copy the h4droid.c and paste in HDroidGUI\jni.
5. In HDroidGUI\jni\Android.mk. In Android.mk you see two variable $(HRB_INC) and $(SRC_FILES). You can either replace them directly in Android.Mk or write a bat file eg
—————————————————————————————————–
Ndkhbsrc.bat
set HRB_INC=C:\harbour\include
set SRC_FILES=h4droid.c hdmain.c hdactiv.c hdwidget.c drawwidg.c hdbrowse.c
—————————————————————————————————–
Open your command prompt in your HDroidGUI\jni directory and type Ndkhbsrc.bat and ndk-build. Declare your android ndk version as a system path variable to get ndk-build.
6. Copy the entire c source files and Ndkhbsrc.bat from HDroidGUI\jni\ and to HDroidGUI\static\jni.
Open your command prompt in your HDroidGUI\jni directory and type Ndkhbsrc.bat and ndk-build.
7. Copy folder armeabi from HDroidGUI\libs to HDroidGUI\lib
8. Copy libh4droida.a from HDroidGUI\static\obj\local\armeabi to HDroidGUI\lib

Steps in HDroidGUI folder are over
Steps in hddbf and hdcalc folder are the same.
Unzip hddbf and I renamed hddbf-master to HDroidGUI

9. Change the paths in hddbf\setenv.bat to reflect your paths
10. Open command prompt and call build.bat. If you get no errors well-done. I got errors and these are my work arround
11. After the errors go to hddbf \jni and you will see main.c.This was a main.prg from hddbf \src compiled to c source file.
Guru enough read the main.prg and edit it. Your main.prg will become your harbour android gui. If you edit it save somewhere else together with hddbf\setenv.bat. eg hddbfedit
Hddbfedit
—setenv.bat
—src
——main.prg
Delete folder hddbf and unzip again from hddbf-master.zip. Replace setenv.bat and src\main.prg in hddbf with hddfedit
Repeat 10
12. Edit Android.mk in hddbf\jni by
Adding
HDROIDGUI:=E:/ HDroidGUI
after the first line

Replace
LOCAL_SRC_FILES := $(SRC_FILES)
LOCAL_SRC_FILES := main.c
13. Open your command prompt in your hddbf \jni directory and type ndk-build
Creating an android application
14. Create a new android project in Eclipse ADT
Package name: su.harbour.hddbf
Target SDK: 19
Minimum Required SDK: 14
Theme: Nome
Project Name and Application Name: HrApk
15: Click NEXT
Uncheck the first two checkbox
16. Click FINISH.
The Android Eclipse will be whatever you call your project name eg HrApk
17. Copy the armeabi from hddbf\libs to Android Eclipse\libs
18 Copy the su from hddbf \src to Android Eclipse\src
19. Copy the AndroidManifest.xml from hddbf to Android Eclipse
20. Copy the hDroidGUI from HDroidGUI\src\su\harbour to Android Eclipse project\src\su\harbour

21. Refresh your project in Eclipse and run it 

Qatan

unread,
Mar 25, 2015, 4:20:58 AM3/25/15
to harbou...@googlegroups.com
Hello all,
 
Just in case anyone is interested in using Firebird SQL with Android then you can download Firebird 3 and do your tests...
Alex Peshkov published a test version of “Firebird 3 embedded for Android”
 
Carlos H. Cantu (active Firebird promoter in Brazil) called Alex Peshkov and he got authorization to access Alex’s private cloud storage that contains the test version of Firebird 3 for Android.
The files and tools to access Firebird embedded are available here: https://cloud.mail.ru/public/0b09cf605ed8/FbAndr
The embedded version can also be used as a client (fbclient) to access remote Firebird servers.
The embedded version should be embedded on the final application (it is not installed separately).
Alex would like to get some feedback of the tests...
 
To learn more about Firebird you can watch this video “Firebird Development: where we stand and where we go” here: https://www.youtube.com/watch?v=ibZKgmHz9_4&feature=youtu.be 
 
I hope it will be useful to someone.
 
Qatan
 

Franz

unread,
Mar 25, 2015, 7:03:13 AM3/25/15
to harbou...@googlegroups.com
How to add a progress dialog (for examples during connect with a netio server ?
Is it possible to add picture to editbox and header to browse ?
Thanks a lot.
Ciao
Franz

alkresin

unread,
Mar 25, 2015, 8:25:20 AM3/25/15
to harbou...@googlegroups.com
> My working solution for HDroidGui because using the buildall.bat is not working for me.

  Interesting stuff, but, IMO, using of bat/sh files, included in project, is a bit more simple.
What was the errors, which you get using the buildall.bat ? You could report them here or to https://github.com/alkresin/HDroidGUI/issues

Regards, Alexander.

alkresin

unread,
Mar 25, 2015, 8:31:40 AM3/25/15
to harbou...@googlegroups.com

Rolf,


> just a very very tiny note, i would have named it: HbDroidGUI :-) alike 'Hb' is somehow the shortened form of Harbour ......


 'H' is a very shortened form of Harbour :). For me HDroidGUI sounds better, tongue stumbles over the 'b' in HbDroidGUI :)

Regards, Alexander.

alkresin

unread,
Mar 25, 2015, 8:34:00 AM3/25/15
to harbou...@googlegroups.com
Franz,


> How to add a progress dialog (for examples during connect with a netio server ?

  It isn't implemented yet, I'll include it in the todo list.


> Is it possible to add picture to editbox and header to browse ?

  These are already in todo list :)

Regards, Alexander.

MigSoft

unread,
Mar 25, 2015, 7:49:57 PM3/25/15
to harbou...@googlegroups.com

 


Hi, 


Thanks to Roberto and guidelines posted on this forum, start some tests with the library of Alexander Kresin resulting in a pleasant surprise.

Regards,

Miguel Angel Juárez Apaza
http://www.mig2soft.com

Franz

unread,
Mar 26, 2015, 6:47:02 AM3/26/15
to harbou...@googlegroups.com
Next week I will deliver the first app (small for now but very useful) made with the library of Alexander to one of my clients. Thanks Alex! A great job!

alkresin

unread,
Mar 26, 2015, 2:18:58 PM3/26/15
to harbou...@googlegroups.com
> Next week I will deliver the first app (small for now but very useful)

 Congratulations!

HDroidGUI v.0.4 build 1 released.
Hddbf v 1.3 released - headers for browse added.

Regards, Alexander.

gu...@yahoo.com.br

unread,
Mar 26, 2015, 4:21:21 PM3/26/15
to harbou...@googlegroups.com
Hi Alexander,
It's possible you include other libs in next build?
Eg: hbtip,
BTW, I would like know if is easy the development to use the camera to barcode capture using HDroidGUI.
Thanks,

Regards,
Gustavo.

Franz

unread,
Mar 26, 2015, 4:28:13 PM3/26/15
to harbou...@googlegroups.com
with 04.1 Now I get an error (net: is not know), maybe you have not linked NETIO ?
Thanks 
Ciao
Franz
 

alkresin

unread,
Mar 27, 2015, 1:33:45 AM3/27/15
to harbou...@googlegroups.com
> It's possible you include other libs in next build?
  Eg: hbtip,

   Does hbtip depends on any external libraries ?

> BTW, I would like know if is easy the development to use the camera to barcode capture using HDroidGUI.

  I'm not ready to answer right now, I didn't learn yet this area.

Regards, Alexander.

alkresin

unread,
Mar 27, 2015, 1:40:16 AM3/27/15
to harbou...@googlegroups.com
> with 04.1 Now I get an error (net: is not know), maybe you have not linked NETIO ?

  The libharbour.so is the same, netio is on the place.
  Where did you get this message ?

Regards, Alexander.

Franz

unread,
Mar 27, 2015, 2:10:47 AM3/27/15
to harbou...@googlegroups.com
I'm sorry! my mistake!!
ciao
Franz

Przemyslaw Czerpak

unread,
Mar 27, 2015, 6:21:29 AM3/27/15
to 'alkresin' via Harbour Users
On Thu, 26 Mar 2015, 'alkresin' via Harbour Users wrote:

Hi,

> > It's possible you include other libs in next build?
> Eg: hbtip,
> Does hbtip depends on any external libraries ?

No. Only dynamic binding to HBSSL library. If HBSSL is not linked
then SSL/TLS extensions are not supported by HBTIP.

best regards,
Przemek

alkresin

unread,
Mar 28, 2015, 10:14:10 AM3/28/15
to harbou...@googlegroups.com

>    Does hbtip depends on any external libraries ?

No. Only dynamic binding to HBSSL library. If HBSSL is not linked
then SSL/TLS extensions are not supported by HBTIP.


  Thanks for the info. I'll include the hbtip in one of the next releases.

Today HDroidGUI v.0.4 build 2  and hdcalcul 1.5 was released - it looks much better due to implementing of widget styles.

Regards, Alexander.

Gustavo Fidelis

unread,
Mar 30, 2015, 6:41:39 PM3/30/15
to harbou...@googlegroups.com

>    Does hbtip depends on any external libraries ?

No. Only dynamic binding to HBSSL library. If HBSSL is not linked
then SSL/TLS extensions are not supported by HBTIP.


>  Thanks for the info. I'll include the hbtip in one of the next releases.

OK I understood. Excellent work Alexander and thank you for sharing with us.
Thanks you Mr. Przemyslaw Czerpak for the explanation.
Lets go to the test.

Regards,
Gustavo





alkresin

unread,
Mar 31, 2015, 6:18:19 AM3/31/15
to harbou...@googlegroups.com
HDroidGUI next build released: v. 0.4 build 3
libharbour.so has been rebuild in mt mode ( so, threads are available ), hbtip has been added.
Progress dialog, WebView added.

roberto.p...@gmail.com

unread,
Mar 31, 2015, 6:41:02 PM3/31/15
to harbou...@googlegroups.com
Alexander,

The new release is awesome. Thanks again for your great work.

Another thing for your consideration for future releases: Multi-select Browse.

Regards,

Roberto.

Franz

unread,
Apr 1, 2015, 11:06:29 AM4/1/15
to harbou...@googlegroups.com
First App delivered to my customer.
Customer is very very very happy !!!
Thanks a lot for your wonderfull job.
Ciao
Franz

Angel Pais

unread,
Apr 1, 2015, 12:41:41 PM4/1/15
to harbou...@googlegroups.com
screenshots ?

alkresin

unread,
Apr 1, 2015, 2:56:19 PM4/1/15
to harbou...@googlegroups.com
HDroidGUI 0.4 build 4 has been released. Added: ImageView widget, possibility to make and save a snapshot with a camera.
Hddemo 1.0 - the new demo application, it will be the main place to demonstrate HDroidGUI features.

Regards, Alexander.

alex;

unread,
Apr 3, 2015, 10:31:16 AM4/3/15
to harbou...@googlegroups.com
Hi, Alexander.

What do say about that
HDroidGUI is individual case of interaction with JRE. And can we use this technology on Linux and Windows?

WBR, alex;

воскресенье, 22 февраля 2015 г., 11:34:43 UTC пользователь alkresin написал:
Hi,

I just created two new projects on the github:

   https://github.com/alkresin/HDroidGUI  - HDroidGUI - a new Android GUI framework for Harbour ( or Harbour GUI framework for Android :) )
   https://github.com/alkresin/hdcalcul - a calculator sample, which uses the HDroidGUI.

The documentation, as usually :), delayed. I'll create a web page later.
Pay attention to hdroidgui/utils/newproject.prg. It is a standalone utility, which creates a new project, based on HDroidGUI. Hdcalcul was created with it.

Just to have an idea how it looks, below is a source of hdcalcul:

#include "hdroidgui.ch"

FUNCTION HDroidMain

   LOCAL oActivity, oLayV, oLayH1, oBtn1, oEdit1, oText1

   INIT WINDOW oActivity TITLE "Calculator"
   
      BEGIN LAYOUT oLayV SIZE MATCH_PARENT,MATCH_PARENT
   
         BEGIN LAYOUT oLayH1 HORIZONTAL SIZE MATCH_PARENT,WRAP_CONTENT

         EDITBOX oEdit1 HINT "Input an expression" SIZE 0,MATCH_PARENT

         BUTTON oBtn1 TEXT "Ok" TEXTCOLOR 255 SIZE WRAP_CONTENT,WRAP_CONTENT ;
              ON CLICK {||onBtn1(oEdit1,oText1)}

         END LAYOUT oLayH1

         TEXTVIEW oText1 TEXTCOLOR 10485760 BACKCOLOR "#FFFFFF" SIZE MATCH_PARENT,MATCH_PARENT
   
      END LAYOUT oLayV

   RETURN oActivity

STATIC Function OnBtn1( oEdit1, oText1 )
   LOCAL s, xRez, bOldError, lRes := .T.

   s := oEdit1:GetText()

   bOldError := ErrorBlock( { |e|break( e ) } )
   BEGIN SEQUENCE
      xRez := &( Trim( s ) )
   RECOVER
      xRez := "Error..."
   END SEQUENCE
   ErrorBlock( bOldError )

   oText1:SetText( Iif( xRez == Nil, "Nil", Iif( Valtype(xRez)=="A", "Array", ;
         Transform( xRez, "@B" ) ) + Chr(10)+Chr(13) + oText1:GetText() ) )

   RETURN "1"




alkresin

unread,
Apr 3, 2015, 11:40:08 AM4/3/15
to harbou...@googlegroups.com
> What do say about that HDroidGUI is individual case of interaction with JRE. And can we use this technology on Linux and Windows?

  I'm not familiar good enough with Java itself and it implementation under Linux and Windows to give an exhaustive answer.
  I think, that the technology itself maybe used there. Not the code. though, - because, as I suppose, Java's GUI implementation ( set of widgets, their structure ) in Linux and Windows differs from that in Android. But I don't see much sense in it. In Android the interaction with Java is a compulsory way. Why we may need to have such a framework for other platforms ?

Regards, Alexander.

alkresin

unread,
Apr 3, 2015, 11:48:10 AM4/3/15
to harbou...@googlegroups.com
Roberto,


> Another thing for your consideration for future releases: Multi-select Browse.

 Maybe, you mean something else, but, as I see it, the multiselect feature can be realized in any browse, including that one in HDroidGUI, using the onClick.
Just change the value of a first column in appropriate row, setting some mark there - and then after clicking on a some button or selecting menu item do what you need with marked rows.

Regards, Alexander.

roberto.p...@gmail.com

unread,
Apr 4, 2015, 5:07:01 PM4/4/15
to harbou...@googlegroups.com
 Maybe, you mean something else, but, as I see it, the multiselect feature can be realized in any browse, including that one in HDroidGUI, using the onClick.
Just change the value of a first column in appropriate row, setting some mark there - and then after clicking on a some button or selecting menu item do what you need with marked rows.

You are right, it could be handled that way, but I really meant was checkboxes (even I've not mentioned explicitly).

And You've added support for checkboxes in columns some hours ago... so thanks!

Another (IMHO) very useful feature, could be the optional ability to 'trap' the back button, to ask for confirmation to the user before close the current window (in my experience, users, accidentally tap the back button very frequently).

Thanks again!

Regards,

Roberto.


 
Regards, Alexander.

MigSoft

unread,
Apr 5, 2015, 9:55:20 AM4/5/15
to harbou...@googlegroups.com

El viernes, 3 de abril de 2015, 12:48:10 (UTC-3), alkresin escribió:

Regards, Alexander.


Alexander,

It is possible to extend coverage to other processors such as MIPS and X86?

Regards,

Miguel Juárez
 

alkresin

unread,
Apr 6, 2015, 2:49:38 AM4/6/15
to harbou...@googlegroups.com
> It is possible to extend coverage to other processors such as MIPS and X86?

  Yes, it is. The jni/Application.mk include a line, which define a platform type. Now it is set to "armeabi", but it may be changed.

First of all, libharbour.so should be build for appropriate processor.
There is a project in Github, https://github.com/alkresin/libharbour4a , which contains scripts for it. Yesterday I've changed  'APP_ABI := armeabi' to  'APP_ABI := all' - so it can be used now for all processors, supported by Android NDK. You may built it yourself, or I my upload ready libraries to my site.

If you need to build an apk for a certain processor type only, you just need to copy appropriate libharbour.so to HDroidGUI/jni/, change the HDroidGUI/jni/Application.mk, HDroidGUI/static/jni/Application.mk and in build.bat, build.sh scripts of your project replace 'armeabi' directory name with a new one.

If you need an apk, which contains libraries for all processor types, more changes in build scripts must be done.

Regards, Alexander.



Franz

unread,
Apr 6, 2015, 3:07:55 AM4/6/15
to harbou...@googlegroups.com
Wishes,,,
Print support ?
Ciao
Franz

Franz

unread,
Apr 6, 2015, 9:31:10 AM4/6/15
to harbou...@googlegroups.com
Hi Alex,
can you add a sample how to load a image from resource ?
Thanks 
Ciao
Franz 

alkresin

unread,
Apr 6, 2015, 11:46:07 AM4/6/15
to harbou...@googlegroups.com
> can you add a sample how to load a image from resource ?

   It isn't possible yet, I add appropriate code in a couple of days..

Regards, Alexander.

MigSoft

unread,
Apr 6, 2015, 4:45:59 PM4/6/15
to harbou...@googlegroups.com


El lunes, 6 de abril de 2015, 3:49:38 (UTC-3), alkresin escribió:
> It is possible to extend coverage to other processors such as MIPS and X86?

  Yes, it is. The jni/Application.mk include a line, which define a platform type. Now it is set to "armeabi", but it may be changed.

First of all, libharbour.so should be build for appropriate processor.
There is a project in Github, https://github.com/alkresin/libharbour4a , which contains scripts for it. Yesterday I've changed  'APP_ABI := armeabi' to  'APP_ABI := all' - so it can be used now for all processors, supported by Android NDK. You may built it yourself, or I my upload ready libraries to my site.

If you need to build an apk for a certain processor type only, you just need to copy appropriate libharbour.so to HDroidGUI/jni/, change the HDroidGUI/jni/Application.mk, HDroidGUI/static/jni/Application.mk and in build.bat, build.sh scripts of your project replace 'armeabi' directory name with a new one.

Thanks Alexander,

 If you need an apk, which contains libraries for all processor types, more changes in build scripts must be done.

Regards, Alexander.


We follow with special interest the great effort you make. 

Regards,

Miguel Juárez

 

alex;

unread,
Apr 9, 2015, 10:23:34 AM4/9/15
to harbou...@googlegroups.com

this image show Dalvik VM
;o)

Franz

unread,
Apr 10, 2015, 4:36:04 AM4/10/15
to harbou...@googlegroups.com
Hi Alex,
I downloaded last Hdroid from GIT and tryed IMAGE from res with these syntaxes:
IMAGEVIEW oImage URI hd_HomeDir()+"res\drawable\harbour.png" BACKCOLOR "#F865DD" SIZE MATCH_PARENT,0
IMAGEVIEW oImage URI "res\drawable\harbour.png" BACKCOLOR "#F865DD" SIZE MATCH_PARENT,0
IMAGEVIEW oImage URI "harbour.png" BACKCOLOR "#F865DD" SIZE MATCH_PARENT,0
but no image is displayed.
What is the correct syntax ?
Ciao
Franz

alkresin

unread,
Apr 10, 2015, 6:22:07 AM4/10/15
to harbou...@googlegroups.com
If you need to set an image from resources, use "$$" and the resource name without extension, in your case:

URI "$$harbour"

BTW, the same is about text strings. If you define some in res/values/string.xml, you may use them with the "$$" prefix:

INIT WINDOW oWnd TITLE "$$wnd_title"

Regards, Alexander.

Rolaci

unread,
Apr 10, 2015, 6:45:34 PM4/10/15
to harbou...@googlegroups.com
Hi Alex, I have noticed a strange behavior: in hddemo, if you play with the browse (rotate the screen, upload or download rows), at some point the app gives a message: "hddemo stopped", and indeed the program ends. It is difficult to say with that combination takes place. Also sometimes can give the message "Harbour error". and then also ends.
English is not my mother language, so, sorry about that.
Regards.
Roberto Olaciregui.

gvar...@gmail.com

unread,
Apr 11, 2015, 7:02:52 PM4/11/15
to harbou...@googlegroups.com

Hi Alex:


[Google Translate]

First I want to express my appreciation for their efforts in developing this wonderful tool.

I've done some tests with HDroidGUI and describe my results here:

With the utilitarian "newproject.exe" I created a new project called "hdNetIO".

I modified the code examples for an APK that allows me to make a table BROWSE "test.dbf" located in the "C:\hb32\tests" folder.

When I compile the project with "build.bat" for the APK I have to run the "build.bat" 2 or 3 times.

The first time I get this:


=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
Acceso denegado.
Acceso denegado.
Acceso denegado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java
javac: directory not found: obj
Usage: javac <options> <source files>
use -help for a list of possible options
Presione una tecla para continuar . . .
C:\android\projects\hdNetIO>
=================================================================================

the second time, sometimes I get this:

=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
El sistema no puede encontrar el archivo especificado.
Acceso denegado.
Acceso denegado.
El sistema no puede encontrar el archivo especificado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/dx.bat --dex --output=bin/classes.dex obj C:\android\projects\HDroidGUI\libs

UNEXPECTED TOP-LEVEL ERROR:
java.io.FileNotFoundException: bin\classes.dex (El sistema no puede encontrar la ruta especificada)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
        at com.android.dx.command.dexer.Main.openOutput(Main.java:940)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:316)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
Presione una tecla para continuar . . .
=================================================================================

and in the second or third time, and believe me the APK and I get this:

=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
El sistema no puede encontrar el archivo especificado.
El sistema no puede encontrar el archivo especificado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/dx.bat --dex--output=bin/classes.dex obj C:\android\projects\HDroidGUI\libs
 'lib/armeabi/libharbour.so'...
 'lib/armeabi/libh4droid.so'...
error de herramienta de claves: java.lang.Exception: No se ha generado el par de  claves, el alias <key2> ya existe
java.lang.Exception: No se ha generado el par de claves, el alias <key2> ya existe
        at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1529)
        at sun.security.tools.KeyTool.doCommands(KeyTool.java:969)
        at sun.security.tools.KeyTool.run(KeyTool.java:340)
        at sun.security.tools.KeyTool.main(KeyTool.java:333)
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a times
tamp, users may not be able to validate this jar after the signer certificate's
expiration date (2042-08-27) or after any future revocation date.
Verifying alignment of bin/hdNetIO.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
     362 META-INF/KEY2.SF (OK - compressed)
     740 META-INF/KEY2.RSA (OK - compressed)
    1857 AndroidManifest.xml (OK - compressed)
    2590 classes.dex (OK - compressed)
   22783 lib/armeabi/libharbour.so (OK - compressed)
 1067338 lib/armeabi/libh4droid.so (OK - compressed)
Verification succesful
Presione una tecla para continuar . . .

C:\android\projects\hdNetIO>
=================================================================================

What could be happening?

Ok, after obtaining the APK, charge NETIO on a PC with Windows 7 Ultimate 64 bits as follows:

=================================================================================
Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\SySGVS>c:\hb32\bin\hbnetio -iface=192.168.1.34 -rootdir=c:\hb32
Harbour NETIO Server 3.2.0dev (r1503052135)
Copyright (c) 2009-2015, Przemyslaw Czerpak, Viktor Szakats
http://harbour-project.org/

2015-04-11 16:56:42.969 Ready to accept connections.
2015-04-11 16:56:42.969 Listening on: 192.168.1.34:2941
2015-04-11 16:56:42.969 Root filesystem: c:\hb32
2015-04-11 16:56:42.969 RPC support: disabled
2015-04-11 16:56:42.969 Encryption: disabled
2015-04-11 16:56:42.969 RPC filter module: not set
=================================================================================

Then I install and run the APK on my cell phone and displayed like this:



But when I try to navigate beyond the record about 50, the APK aborted and get this:



What could be happening?

Deputy project folder "HDNet"

BestRegards
GVS

==================================================================================================

[IN SPANISH]

[NOTA: Adjunto texto original en español ]

Hola Alex:

En primer lugar quiero expresar mi agradecimiento por su esfuerzo en el desarrollo de esta maravillosa herramienta.

He hecho unas pruebas con HDroidGUI y aqui comento mis resultados:

Con el utilitario "newproject.exe" he creado un nuevo proyecto llamado "hdNetIO".

He modificado el código de los ejemplos para hacer un APK que me permita hacer un BROWSE de la tabla "test.dbf" que se encuentra en la carpeta "C:\hb32\tests".

Cuando compilo el proyecto con "build.bat", para obtener el APK tengo que ejecutar el "build.bat" 2 o 3 veces.

En la primera vez me sale esto:
=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
Acceso denegado.
Acceso denegado.
Acceso denegado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java
javac: directory not found: obj
Usage: javac <options> <source files>
use -help for a list of possible options
Presione una tecla para continuar . . .
C:\android\projects\hdNetIO>
=================================================================================

en la segunda vez, a veces me sale esto:

=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
El sistema no puede encontrar el archivo especificado.
Acceso denegado.
Acceso denegado.
El sistema no puede encontrar el archivo especificado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/dx.bat --dex --output=bin/classes.dex obj C:\android\projects\HDroidGUI\libs

UNEXPECTED TOP-LEVEL ERROR:
java.io.FileNotFoundException: bin\classes.dex (El sistema no puede encontrar la ruta especificada)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
        at com.android.dx.command.dexer.Main.openOutput(Main.java:940)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:316)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
Presione una tecla para continuar . . .
=================================================================================

y en la segunda o tercera vez, ya me crea el APK y me sale esto:

=================================================================================
C:\android\projects\hdNetIO>build.bat
No se pudo encontrar C:\android\projects\hdNetIO\src\org\harbour\hdNetIO\R.java
El sistema no puede encontrar el archivo especificado.
El sistema no puede encontrar el archivo especificado.
Harbour 3.2.0dev (r1503052135)
Copyright (c) 1999-2015, http://harbour-project.org/

C:\android\projects\hdNetIO>c:/Android/android-ndk-r10d\prebuilt\windows\bin\make.exe -f c:/Android/android-ndk-r10d/build/core/build-local.mk   1>a1.out 2>a2.out

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/aapt.exe package -f -m -S res -J src -M AndroidManifest.xml -I c:/Android/sdk/platforms/android-22/android.jar

C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java

C:\android\projects\hdNetIO>call c:/Android/sdk/build-tools/22.0.1/dx.bat --dex--output=bin/classes.dex obj C:\android\projects\HDroidGUI\libs
 'lib/armeabi/libharbour.so'...
 'lib/armeabi/libh4droid.so'...
error de herramienta de claves: java.lang.Exception: No se ha generado el par de  claves, el alias <key2> ya existe
java.lang.Exception: No se ha generado el par de claves, el alias <key2> ya existe
        at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1529)
        at sun.security.tools.KeyTool.doCommands(KeyTool.java:969)
        at sun.security.tools.KeyTool.run(KeyTool.java:340)
        at sun.security.tools.KeyTool.main(KeyTool.java:333)
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a times
tamp, users may not be able to validate this jar after the signer certificate's
expiration date (2042-08-27) or after any future revocation date.
Verifying alignment of bin/hdNetIO.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
     362 META-INF/KEY2.SF (OK - compressed)
     740 META-INF/KEY2.RSA (OK - compressed)
    1857 AndroidManifest.xml (OK - compressed)
    2590 classes.dex (OK - compressed)
   22783 lib/armeabi/libharbour.so (OK - compressed)
 1067338 lib/armeabi/libh4droid.so (OK - compressed)
Verification succesful
Presione una tecla para continuar . . .

C:\android\projects\hdNetIO>
=================================================================================

¿Qué puede estar pasando?

Ok, luego de obtener el APK, cargo el NetIO en una PC con Windows 7 Ultimate 64 bits de la siguiente manera:

=================================================================================
Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\SySGVS>c:\hb32\bin\hbnetio -iface=192.168.1.34 -rootdir=c:\hb32
Harbour NETIO Server 3.2.0dev (r1503052135)
Copyright (c) 2009-2015, Przemyslaw Czerpak, Viktor Szakats
http://harbour-project.org/

2015-04-11 16:56:42.969 Ready to accept connections.
2015-04-11 16:56:42.969 Listening on: 192.168.1.34:2941
2015-04-11 16:56:42.969 Root filesystem: c:\hb32
2015-04-11 16:56:42.969 RPC support: disabled
2015-04-11 16:56:42.969 Encryption: disabled
2015-04-11 16:56:42.969 RPC filter module: not set
=================================================================================

Luego instalo ejecuto el APK en mi teléfono celular y se muestra asi:



Pero cuando intento navegar mas alla del registro 50 aproximadamente, el APK aborta y sale esto:



¿Qué puede estar pasando?

Adjunto carpeta del proyecto hdNetIO

BestRegards
GVS



Guillermo Varona Silupú

unread,
Apr 11, 2015, 7:11:56 PM4/11/15
to harbou...@googlegroups.com
Unfortunately could not attach the images and fonts.
How I can do this?

TIA
BestRegards
GVS

Franz

unread,
Apr 12, 2015, 6:10:42 AM4/12/15
to harbou...@googlegroups.com
Hello,
My first and (for now) only APP is well working with NETIO. 
My App connect to a server running NETIO (this is a PC with static IP connection running in my customer's office, Internet connection is 7MB/512Kb, but times are not so bad) The APP opens 4 dbf with cdx index and displays info. It's possible to add information directly on server files and make search (with temp index, wildseek ecc. as on local)..
In local net I already used NETIO to connect to local server so I only had to open a port on the router to have access from internet.
Ciao
Franz
I have no problems to compile my app ( I have only modified batch file in HDROIDGUI directory and in my APP main dir).
Thank Alex to your work.
Ciao
Franz
Now I want to try LETODB to compare speed.

Franz

unread,
Apr 12, 2015, 6:46:01 AM4/12/15
to harbou...@googlegroups.com
Hi Alex,
I tryed Image from resource but I get bad quality. I tryed with 256, 512 and 1024 pixel (my smartphone is 540x960).
Why ?
Ciao
Franz

alex;

unread,
Apr 12, 2015, 12:13:55 PM4/12/15
to harbou...@googlegroups.com
Hi, All.

I discovered so:

http://4pda.ru/forum/index.php?showtopic=200537&st=100

it is links to sources for Android

good luck

Franz

unread,
Apr 14, 2015, 3:53:38 AM4/14/15
to harbou...@googlegroups.com
Hello Alex
I tryed to use this to make a phone call from app but it doesn't work. Is not the same as to start Photo Camera ?

Working : BUTTON oBtn5 TEXT "Photo" SIZE 0, MATCH_PARENT   ON CLICK {|| hd_calljava_s_v( "photo:")}
 
Not Working: BUTTON oBtn5 TEXT "Phone Call" SIZE 0, MATCH_PARENT   ON CLICK {|| hd_calljava_s_v( "tel:123456")}
    
Ciao
Franz

Franz

unread,
Apr 14, 2015, 5:20:23 AM4/14/15
to harbou...@googlegroups.com
I tryed to add these lines to harbour.java but i cannot compile it.

} else if( scmd.equals( "tel" ) ) {
          Intent callIntent = new Intent(Intent.ACTION_CALL);
       callIntent.setData(Uri.parse("tel:1234567890"));
       startActivity(callIntent);
          
       } else if( scmd.equals( "photo" ) ) {

alex;

unread,
Apr 16, 2015, 1:01:36 AM4/16/15
to harbou...@googlegroups.com
Hi, Alexander.

I began research project HDroidGUI.
1. I opened sources in NetBeans and it advised me to make some changes.
2. I made directly register native methods in h4droid.c. (I read that it's more right)

Please see attach. I hope you can give different by diff-tools.

...research continues...

WBR, alex;

src.zip

alex;

unread,
Apr 16, 2015, 1:17:34 AM4/16/15
to harbou...@googlegroups.com
and Alexander

you can write me to pe...@mail.ru

WBR, alex;

alex;

unread,
Apr 16, 2015, 1:42:02 AM4/16/15
to harbou...@googlegroups.com
and with current changes java class Harbour become fully static.

see attachs insteed of attach of preprevious message.

I hope you will undastand me.

WBR, alex;

четверг, 16 апреля 2015 г., 2:17:34 UTC-3 пользователь alex; написал:
HDroidGUI_src.zip
hdcalcul_src.zip

alex;

unread,
Apr 16, 2015, 3:19:53 AM4/16/15
to harbou...@googlegroups.com
I seems forget to cut constructor Harbour(). I think you will understand.

Regards

alex;

unread,
Apr 16, 2015, 3:51:51 PM4/16/15
to harbou...@googlegroups.com
Hi, again.

I made diffs.txt - see attach

regards


hdcalcul_diff.txt
HDroidGUI_diff.txt

alkresin

unread,
Apr 17, 2015, 5:40:36 AM4/17/15
to harbou...@googlegroups.com


воскресенье, 12 апреля 2015 г., 3:02:52 UTC+4 пользователь gvar...@hotmail.com написал:

>  When I compile the project with "build.bat" for the APK I have to run the "build.bat" 2 or 3 times.

  That's strange. It works normally here, in my environment.

 > The first time I get this:
> ...

> C:\android\projects\hdNetIO>call C:/PROGRA~2/java/jdk1.7.0_75/bin/javac -d obj -cp c:/Android/sdk/platforms/android-22/android.jar;C:\android\projects\HDroidGUI\libs -sourcepath src src/org\harbour\hdNetIO/*.java
> javac: directory not found: obj

  It looks like the obj/ directory doesn't exist in your project directory, but newproject.exe creates it - just run it and check.


> the second time, sometimes I get this:
> ...

> UNEXPECTED TOP-LEVEL ERROR:
> java.io.FileNotFoundException: bin\classes.dex (El sistema no puede encontrar la ruta especificada)
> ...

   Such message appears usually if the bin/derectory is absent, but is is created by newproject.exe.


> But when I try to navigate beyond the record about 50, the APK aborted and get this:

  What did you get ?

Regards, Alexander.
 


alkresin

unread,
Apr 17, 2015, 5:51:56 AM4/17/15
to harbou...@googlegroups.com
вторник, 14 апреля 2015 г., 13:20:23 UTC+4 пользователь Franz написал:
  > I tryed to add these lines to harbour.java but i cannot compile it

  Does the code, which you sent to the github issues, works properly ?
  I don't have a smartphone and can't test it.

Regards, Alexander.

alkresin

unread,
Apr 17, 2015, 6:03:01 AM4/17/15
to harbou...@googlegroups.com
Thanks for your help. I will review your files as soon as possible.


четверг, 16 апреля 2015 г., 23:51:51 UTC+4 пользователь alex; написал:

Guillermo Varona Silupú

unread,
Apr 17, 2015, 12:55:13 PM4/17/15
to harbou...@googlegroups.com
Hi Alex:

get this:

Image

I want to send the sources, but gmail does not allow me, how I can do this?

BestRegards
GVS

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Atentamente,
Ing. Guillermo Varona Silupú
Piura - Perú

alkresin

unread,
Apr 17, 2015, 1:48:18 PM4/17/15
to harbou...@googlegroups.com
> I want to send the sources, but gmail does not allow me, how I can do this?

 You may send them to https://github.com/alkresin/HDroidGUI/issues if you have account on Github, or to alex at kresin.ru

Regards, Alexander.

Franz

unread,
Apr 18, 2015, 9:28:33 AM4/18/15
to harbou...@googlegroups.com
Hello Alex,
Yes, the lines that I sent you work well in my application (my customer ask me for add phone call and now he uses phone call directly from  the app).
Ciao Franz

roberto.p...@gmail.com

unread,
May 20, 2015, 7:27:28 PM5/20/15
to harbou...@googlegroups.com
Hi Alex,

I've was not able to find sample code showing webview usage.

I need to invoke it with a specific URL.

How it could be done?

TIA.

Regards,

Roberto.

alex;

unread,
May 21, 2015, 3:00:24 PM5/21/15
to harbou...@googlegroups.com
Hi, All.

Exists:
google android terminal
github.com/jackpal/Android-Terminal-Emulator

What you think about to make GT for HDroidGUI?

Iip Rifai

unread,
May 30, 2015, 8:42:45 PM5/30/15
to harbou...@googlegroups.com
Hi,

How to write this java example:

http://www.tutorialspoint.com/android/android_audio_capture.htm

To Hdroidgui style

Thanks in advance

-iip-
Message has been deleted
Message has been deleted

Iip Umar Rifai

unread,
Dec 28, 2017, 3:02:22 AM12/28/17
to harbou...@googlegroups.com
I'm successfully create apk using hdroidgui on Manjaro Linux, I created PKGBUILD for manjaro or arch linux, here is the content of my PKGBUILD:

# Maintainer: Iip Umar Rifai <iip.uma...@gmail.com>
pkgname=hdroidgui-git
pkgver=20150419
pkgrel=1
pkgdesc="Android GUI framework for Harbour"
arch=('i686' 'x86_64')
license=('GPL')
groups=('devel')
depends=('jdk7-openjdk' 'android-sdk' 'android-sdk-platform-tools' 'android-tools' 'android-ndk' 'harbour-git')
makedepends=('gcc' 'git')
optdepends=()
provides=('hdroidgui')
conflicts=('hdroidgui')
replaces=()
backup=()
options=('staticlibs' '!strip')
changelog=
noextract=()
md5sums=('SKIP')

build() {
cd "$srcdir/HDroidGUI-master"
chmod +x ./buildall.sh
chmod +x ./clear.sh
chmod +x ./comp.sh
chmod +x ./ndkbuild.sh
chmod +x ./setenv.sh
sed -i 's/\(ANDROID_HOME\s*=\s*\).*$/\1\/opt\/android-sdk/' setenv.sh
sed -i 's/\(BUILD_TOOLS\s*=\s*\).*$/\1\$ANDROID_HOME\/build-tools\/25.0.2/' setenv.sh
sed -i 's/\(NDK_HOME\s*=\s*\).*$/\1\/opt\/android-ndk/' setenv.sh
sed -i 's/\(ANDROID_JAR\s*=\s*\).*$/\1\$ANDROID_HOME\/platforms\/android-25\/android.jar/' setenv.sh
sed -i 's/\(HRB_BIN\s*=\s*\).*$/\1\/usr\/local\/bin/' setenv.sh
sed -i 's/\(HRB_INC\s*=\s*\).*$/\1\/usr\/local\/include/' setenv.sh
sed -i "s/read -n1/#read -n1/g" comp.sh
sed -i "s/javac /javac -source 1.7 -target 1\.7 /g" comp.sh
sed -i "s/\/prebuilt\/linux-x86\//\/prebuilt\/linux-$CARCH\//g" ndkbuild.sh
#echo "$CARCH"
./buildall.sh
}

package() {
  cd "$srcdir/HDroidGUI-master"
  install -d "$pkgdir/opt/HDroidGUI"
  cp -r . "$pkgdir/opt/HDroidGUI"
  #find . -type f -not -iname '*/.o' -exec cp '{}' "/$pkgdir/opt/HDroidGUI/{}" ';'
}


As you see above, you need to add parameter "-source 1.7 -target 1.7 to java compiler to make it work, if you run Mnnjaro/arch linux, just run "makepkg" in the folder contain this file, it easy.

Best,

-iip-

 

On Tue, Nov 21, 2017 at 6:10 PM, Diego Fazio <diego...@gmail.com> wrote:
I change the platform with the android-21 and now I have this error...

C:\Android\projects\HDROID~1>call C:\ARCHIV~1\java\jdk1.8.0_151/bin/javac -d lib
s -cp c:\Android\sdk/platforms/android-21/android.jar -sourcepath src src/su/har
bour/hDroidGUI/*.java
Note: src\su\harbour\hDroidGUI\Common.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Diego.


El martes, 21 de noviembre de 2017, 7:31:12 (UTC-3), Diego Fazio escribió:
Hi alkresin, when I compile HDroidGui with buildall I have an error....

C:\Android\projects\HDROID~1>call C:\ARCHIV~1\java\jdk1.8.0_151/bin/javac -d lib
s -cp c:\Android\sdk/platforms/android-27/android.jar -sourcepath src src/su/har
bour/hDroidGUI/*.java
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Thanks
Diego.


El domingo, 22 de febrero de 2015, 8:34:43 (UTC-3), alkresin escribió:
Hi,

I just created two new projects on the github:

   https://github.com/alkresin/HDroidGUI  - HDroidGUI - a new Android GUI framework for Harbour ( or Harbour GUI framework for Android :) )
   https://github.com/alkresin/hdcalcul - a calculator sample, which uses the HDroidGUI.

The documentation, as usually :), delayed. I'll create a web page later.
Pay attention to hdroidgui/utils/newproject.prg. It is a standalone utility, which creates a new project, based on HDroidGUI. Hdcalcul was created with it.

Just to have an idea how it looks, below is a source of hdcalcul:

#include "hdroidgui.ch"

FUNCTION HDroidMain

   LOCAL oActivity, oLayV, oLayH1, oBtn1, oEdit1, oText1

   INIT WINDOW oActivity TITLE "Calculator"
   
      BEGIN LAYOUT oLayV SIZE MATCH_PARENT,MATCH_PARENT
   
         BEGIN LAYOUT oLayH1 HORIZONTAL SIZE MATCH_PARENT,WRAP_CONTENT

         EDITBOX oEdit1 HINT "Input an expression" SIZE 0,MATCH_PARENT

         BUTTON oBtn1 TEXT "Ok" TEXTCOLOR 255 SIZE WRAP_CONTENT,WRAP_CONTENT ;
              ON CLICK {||onBtn1(oEdit1,oText1)}

         END LAYOUT oLayH1

         TEXTVIEW oText1 TEXTCOLOR 10485760 BACKCOLOR "#FFFFFF" SIZE MATCH_PARENT,MATCH_PARENT
   
      END LAYOUT oLayV

   RETURN oActivity

STATIC Function OnBtn1( oEdit1, oText1 )
   LOCAL s, xRez, bOldError, lRes := .T.

   s := oEdit1:GetText()

   bOldError := ErrorBlock( { |e|break( e ) } )
   BEGIN SEQUENCE
      xRez := &( Trim( s ) )
   RECOVER
      xRez := "Error..."
   END SEQUENCE
   ErrorBlock( bOldError )

   oText1:SetText( Iif( xRez == Nil, "Nil", Iif( Valtype(xRez)=="A", "Array", ;
         Transform( xRez, "@B" ) ) + Chr(10)+Chr(13) + oText1:GetText() ) )

   RETURN "1"




--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-users+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages