This week I finally managed to get a test Qt application packaged as an apk file. The application uses the native Proj lib to do some projections conversions. Basically it does the same as what qgis will do just with much more dependencies.
The key problem was that necessitas wipes the libs directory when it generates a project and the native libs never get pushed to the device (bug report). As well, when they get pushed, for example by using the ant Task, then there was a versioning problem. Android does not support (and won’t in the future either) versioned libs, so I had to find a way around it. I came up with two solutions, the first is a custom java method in the QtActivity class that creates symlinks or copies the libraries on runtime and loads them accordingly. the other involves editing the SONAME of each lib and padding the versioning with 0 using the rpl program (rpl -R -e libexpat.so.1 “libexpat.sox00x00” $INSTALL_DIR/lib). I dont know yet which approach to keep, but they both work properly.
I updated all the scripts to be cleaner and I’m working now on creating the libqgisapp.so once I have this all the app should be hopefully ready.
As well, I tried the full over th air deployement of the test app on a real device and it all works, just click on the link to the APK arm-V5 APK arm-v7a and all dependencies (Qt libs as well) get installed… pretty amazing 🙂
Powerful and gentle QField 1.8 Selma sneaked in
Collect accurate data with freehand digitizing and improved form widgets, use the data from your external GNSS receivers without any third-party apps and enjoy the pleasant usability of QField 1.8 Selma.
3 Comments
Andrew Bryden · 2011-08-10 at 16:56
Force closed when trying to download needed libraries. Can I manually download them outside the program?
marco · 2011-08-10 at 17:11
Which script? When? U can run each step standalone. Cool a tester 🙂
Andrew Bryden · 2011-08-10 at 16:56
(EEE PAD TRASFORMER)