It is possible to build the jni part of the library against the host system, to ease testing.

What you need

You need to have Android set up for compiling. You might avoid a lot of work if you deselect some of the builders (because you do not need to compile any libraries for this to work), but you are on your own there...

You need the ability to build pidgin. Then compile and install the default branch of the android repository the normal way.

Those are the configure parameters to use:

./configure \
  --disable-gtkui --disable-consoleui --disable-avahi \
  --disable-screensaver --disable-sm --disable-gstreamer \
  --disable-vv --disable-idn --disable-meanwhile --disable-nm \
  --disable-nss --disable-gnutls --disable-dbus --disable-farstream \
  --disable-perl --disable-tcl \
  --disable-plugins --with-static-prpls="all" \
  --disable-schemas-install

If you do not want to install it, you might adapt the Eclipse configuration (Project → Properties → C/C++ Build → Settings → Includes; Mind to select the right build configuration)

How it works

Simply select X86 as active build configuration. Then build it. On Ubuntu, everything should work. If it does not, you might miss headers. Add them to the Includes section of the Build settings.

How to use

Elcipse outputs an library file. You can simply load it with System.loadLibrary. Then you can use everything im.pidgin.libpurple provides you with. Since this project has no dependency on any Android stuff, it is safe to use on a normal PC and you could deploy your java application you wrote with this library normally.

Before loading libpurple call:

System.loadLibrary("im.pidgin.libpurple");
PurpleLibraryLoader.fakeLoad(); /* avoids android loads */

Ensure to have the library that was build on your path, e.g. by adding the JVM Argument:

-Djava.library.path=/usr/local/lib:${workspace_loc:im.pidgin.libpurple/X86}
Last modified 6 years ago Last modified on 07/17/12 14:52:59
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!