tschallacka / sqlite4java

Automatically exported from code.google.com/p/sqlite4java
0 stars 0 forks source link

Android support #29

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
i was trying to use sqlite4java in android project. i don't know anything about 
gant so i ended up with this solution how to get both jar and needed native 
libraries

i create normaln android project and in its jni subdirectory i have content of 
attached archive

then i just run get.sh, it gets last sqlite4java sources from svn, builds it 
and then calls ndk-build to compile native version of sqlite4java.so library 
and place it where its needed

this works well, but it would be nicer if you would be able to integrate it 
somehow directly to gant scripts. please consider adding it there. (and if you 
don't like the idea then its ok for me too)

Original issue reported on code.google.com by selmi....@gmail.com on 27 Jun 2011 at 11:37

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks for your contribution - we will consider integrating it into the common 
build.

Could you please tell, what was the reason to use sqlite4java on Android? I 
thought Android had a pretty good sqlite wrapper among the system libraries.

Igor

Original comment by ser...@gmail.com on 27 Jun 2011 at 1:29

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
One reason might be a need for multi-plaftorm code.

Original comment by Thotep on 1 Aug 2011 at 6:27

GoogleCodeExporter commented 9 years ago
Thanks - good point.

Original comment by ser...@gmail.com on 1 Aug 2011 at 9:57

GoogleCodeExporter commented 9 years ago
Ok, working on this now. I'm not familiar with Android development, so a little 
help would be appreciated. 

The main question is, how would you like Android version of sqlite4java 
delivered? Do you always need to build it, or is it enough to download .SO file 
and place it in the project directory? 

I managed to build .SO with NDK, but not sure about what else do you need as 
deliverables.

Thanks!
Igor

Original comment by ser...@gmail.com on 23 Feb 2012 at 10:46

GoogleCodeExporter commented 9 years ago
generally its ok if .so file would be available, but sometimes they have to 
recompile sqlite with different options (to enable full text search etc.) so it 
would be good if in development tree would also contain Android.mk and there 
would be some android building information somewhere (should be only little 
enhancment of http://code.google.com/p/sqlite4java/wiki/BuildingFromSource for 
android specific stuff)

btw I was removed from android development several months ago but if you would 
have more questions i will forward them to the team

Original comment by michal.s...@visicom.com on 24 Feb 2012 at 12:05

GoogleCodeExporter commented 9 years ago

Original comment by ser...@gmail.com on 1 Mar 2012 at 4:34

GoogleCodeExporter commented 9 years ago
Thanks for this great support Igor, really appreciated. Just a minor issue, 
when running the jar on Android, it does not report the sqlite4java version as 
it does when running it on other platforms (e.g. Ubuntu).

java -jar sqlite4java output on Linux PC:
     [java] sqlite4java 282
     [java] SQLite 3.7.10
     [java] Compile-time options: ENABLE_COLUMN_METADATA ENABLE_FTS3 ENABLE_FTS3_PARENTHESIS ENABLE_MEMORY_MANAGEMENT ENABLE_RTREE OMIT_DEPRECATED TEMP_STORE=1 THREADSAFE=1

And here's the output on Android:
     [exec] sqlite4java (UNKNOWN VERSION)
     [exec] SQLite 3.7.10
     [exec] Compile-time options: ENABLE_COLUMN_METADATA ENABLE_FTS3 ENABLE_FTS3_PARENTHESIS ENABLE_MEMORY_MANAGEMENT ENABLE_RTREE OMIT_DEPRECATED TEMP_STORE=1 THREADSAFE=1

Original comment by robert.c...@gmail.com on 2 Mar 2012 at 3:55

GoogleCodeExporter commented 9 years ago
Thanks Robert. The code extracts sqlite4java version from the JAR manifest, but 
on the Android's ClassLoader.getResource() does not work for some reason.

Original comment by ser...@gmail.com on 2 Mar 2012 at 4:33

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Any chance to support non-ARM Android platforms, such as GoogleTV? Here's the 
error I'm getting when deploying my test app on GoogleTV:

com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: 
java.lang.UnsatisfiedLinkError: Couldn't load sqlite4java-android-i686: 
findLibrary returned null
  at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97)
  at com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1314)
  at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:258)
  at com.robert.Test.<init>(Test.java:110)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load 
sqlite4java-android-i686: findLibrary returned null
  at java.lang.Runtime.loadLibrary(Runtime.java:425)
  at java.lang.System.loadLibrary(System.java:554)
  at com.almworks.sqlite4java.Internal.tryLoadFromSystemPath(Internal.java:349)
  at com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:124)
  at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:95)
  ... 8 more

Original comment by robert.c...@gmail.com on 26 Mar 2012 at 9:40

GoogleCodeExporter commented 9 years ago
Robert - thanks for your comment. I've posted 
http://code.google.com/p/sqlite4java/issues/detail?id=42 as a separate issue. 
Please star it.

Igor

Original comment by ser...@gmail.com on 29 Mar 2012 at 6:14

GoogleCodeExporter commented 9 years ago
Thanks Igor, just did!

Original comment by robert.c...@gmail.com on 29 Mar 2012 at 6:39