Android Connector

The NuxeoWorld demo of the Android connector looks very promising having addressed the critical mobile issues of offline, caching and synchronization. I have a few questions…

  • Which version of the SDK is required to get the build to work properly (I tried the latest SDK with the default target release 8 api platform without success)

  • Which version(s) of the Android OS does the stack support?

  • Is the Nuxeo Server plugin for the Android Pending Appraisals application available for download?

  • Are dropdown items cached automatically?

  • Are there mechanisms to control what gets cached, when it gets cached and TTL?

  • Similarly, are there programmable controls on replication/snychronization?

  • I didn't see a logon (on the mobile device) during the demo - how is this handled?

  • Beyond Android any thoughts on when the iOS version might be available?

Many thanks, Bruce.

0 votes

2 answers

2174 views

ANSWER

The error I get using the latest SDK but targeting the release 8 api is as follows…

[ERROR] Cannot find required method java.lang.NoSuchMethodException: com.android.sdklib.build.ApkBuilder.addNativeLibraries(java.io.File, java.lang.String)

    at java.lang.Class.getMethod(Class.java:1605)
    at com.jayway.maven.plugins.android.phase09package.ApkBuilder.initialize(ApkBuilder.java:102)

Apparently version 4 of the Android SDK doesn't play nicely with the Nuxeo Android SDK build. I can try older SDKs but there are a fair number of releases…

12/10/2011

Bruce I have "unlike" your question :-) let's try to keep answer readable, it should be 1 question, not a list of 10. This makes it really difficult to reuse the question and answers for others.
12/13/2011



Hi,

The target version of Android is indeed 8 (2.2). This is the version that was use to automate the build and to run the test : so far it worked, but I did not test with a latest version of the SDK.

The Appraisal plugin is a simple Studio Plugin. You should be able to get a copy here : http://public.dev.nuxeo.com/~tdelprat/Android/demo-clientandroid.jar

Are dropdown items cached automatically?

yes, they should

Are there mechanisms to control what gets cached, when it gets cached and TTL?

For now the cache is managed at request level. There is no automatic GC.

Similarly, are there programmable controls on replication/snychronization?

When doing a query you can control if you want it to be cached or not and if you want to force refresh. When managing DocumentsLists, you can ask for full resfresh of the list in background.

I didn't see a logon (on the mobile device) during the demo - how is this handled?

It's part of the config screen where you choose the server and the Login/password.

Beyond Android any thoughts on when the iOS version might be available?

We will work on defining the milestones for Android and iOS in the next week (basically when the 5.5 is out).

Tiry

2 votes



Thanks for the response. I tried the URL above but I get a 403 forbidden error.

Forbidden

You don't have permission to access /~tdelprat/Android/demo-clientandroid.jar on this server. Apache/2.2.16 (Debian) Server at public.dev.nuxeo.com Port 80

12/12/2011

Ok, got everything working using the latest version of the SDK and the release 8 api. I can now create cases in Nuxeo and have them show up in the Android emulator. Now that I have the basics working it's time to play a bit!
12/13/2011

Good to hear. Enjoy :-)
12/13/2011


Partial Answer - first item I did get the full build to work using the latest version of the SDK, but I had to update the maven android plugin to the official 3.0.0 release (and to keep it interesting the name of the plugin itself changes in the 3.0.0 stream from maven-android-plugin to android-maven-plugin - so I had to update all the pom files to reflect the new name). When I ran “mvn clean install” everything worked except automationNonRegTests (problem with configuration of mojo), however, I commented out module line in parent POM for now and everything ran cleanly. I imported the resulting projects into Eclipse, following the instructions on github.

0 votes