I am trying to write a QML plugin that will work on both iOS and Android. The 
iOS implementation requires a mix of C++ & Objective C on the backend, while 
the Android implementation requires some C++ & Java. I struggled yesterday with 
figuring out the best way to deploy this Java alongside an application/project 
that wants to use this plugin on Android. 

For now, I've settled on the following method, but I don't believe it's ideal 
because I had to modify the androiddeployqt tool to get what I want and it 
requires a developer to follow some implicit naming conventions when creating 
jars:

1. Compiling the plugin java to a .jar (bundled and non-bundled versions, as 
with QtAndroidBearer) when building the plugin.

2. Installing the plugin (.so and .jar) post-build to the 
[QT_INSTALL_PREFIX]/qml directory (alongside the built-in qml plugins).

3. Modifying a few lines of code in the androiddeployqt tool to detect .jar 
files when scanning qml imports and package these .jars in the /lib folder of 
the dependent application. Checks for a '-bundled.jar' suffix if the deployment 
method is 'bundled'.

Is anyone aware of a better/easier way to do this? It seems that the only 
built-in way to specify jar dependencies for deployment is by creating a new Qt 
module, which seems overkill for this plugin I'm working on. And from what I 
can tell, ANDROID_PACKAGE_SOURCE_DIR is intended more for use with individual 
standalone applications, not qml plugins.

Brian
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to