Date
1 - 7 of 7
Datanucleus and Android
steve@...
I have seen rumours of Datanucleus running on Android. I assumed it would because of SQLite support, but this was a mistake. Before I switch to a different persistence method, is there any way that Datanucleus does, or can be made to, run on Android?
|
|
I've not tried running on Android, but heard some time ago from one of our contributors (IIRC "nlmarco" from Nightlabs/Codewizards) that they had been doing something about using Android (I think it was around using "SQLDroid" JDBC driver) ... some time ago though. A simple search finds this PullRequest on SQLDroid that the SQLDroid project didn't get around to merging, despite saying all was fine.
Since then I also provided some pull requests to SQLite itself (all merged into recent versions) that made it a runnable database for DataNucleus. Why not report what problems you have ? |
|
steve@...
The issue wasn't the JDBC driver. It was the use of javax.naming.* packages, and the run-time search for a jar containing the "JDO" api, which isn't included in the .dex packaging for Android. I have managed to build without the use of javax.naming.*, but I gave up at the api searching.
|
|
Well javax classes not being present in Android's dex stuff kinda limits things (but then they are required by the JDO API), and by "run-time search for a jar containing JDO api" I assume you mean the DN plugin mechanism (searching for MANIFEST.MF and plugin.xml ... uses javax.xml.*). I mailed nlmarco to see if he can remember what they did.
|
|
marco@...
It's quite a while, but I definitely got DataNucleus running on Android. I wrote a test-program and it worked fine. You already found my pull-request, which fixed quite a few issues in the SQLDroid-driver. I have no idea, if it was ever really merged into the official codebase. https://github.com/cloudstore/cloudstore-experiment here are some old codes which made use of it -- and they worked in the Android-emulator for sure, and IIRC also on my phone back then. Unfortunately, this was never put into productive use, for many reasons -- but not technical ones.
|
|
marco@...
...and here's another repo that might be interesting: https://github.com/cloudstore/cloudstore-android
The last commit-comments state "cloudstore droid working with DN" and "PersistenceManager can be created!!!" -- so we certainly got it running. I don't remember what we did concerning javax.naming-package(s). Either we added the missing classes to our own dex so that class-loading didn't fail, or we somehow removed references to them. Sorry, don't remember the details, anymore. I only remember that it certainly worked: created tables, wrote and read data. |
|
Looks like you added the missing javax.* classes, as per this.
|
|