My plan with the Jira ticket was to take the work done for this commit https://gerrit.iotivity.org/gerrit/#/c/2409/ and redo it.
The current code layout has change a lot since that commit was made; it was made in 2015, and is quite out of date. I have not abandoned it because the developers were on the right track for enabling the universalAPK. I think it needs to be done from scratch since the commit is so old it would be simpler to pull out the ideas than to try and update the commit itself. Basically we need to run the build for each platform (i.e. 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a’) to generate the *.so files for each platform then run a gradle builder that knows about all the *.so file and packages them into an .aar file. George From: Rod Biresch [mailto:rbire...@chariotsolutions.com] Sent: Monday, September 18, 2017 9:56 AM To: Nash, George <george.n...@intel.com> Cc: iotivity-dev@lists.iotivity.org Subject: Re: [dev] Android multiple target architectures George, Thanks for the reply. What is the recommended way of including the iotivity libraries (all architectures) in an Android app? If each architecture specific library (.aar file) is included as a dependency in the Gradle build file then a debug version of the app will run. However, a release build is not possible because of duplicate classes exist in the packaged classes.jar file. We’ve tried unpacking all .aar files and extracting out the shared objects (.so files) into an Android module, which will allow for a release .apk to be built. However, we now see runtime errors like: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/xxx.xxx.xxx/lib/arm/libocstack-jni.so” Basically, we need to support as many architectures as possible. From a client perspective, we need all architectures or the app is not useful. Getting back to your question, yes, we are interested in enabling a universalAPK. Thanks! Rod On Sep 18, 2017, at 12:31 PM, Nash, George <george.n...@intel.com<mailto:george.n...@intel.com>> wrote: Unfortunately there is no build option to build an Android library for a single target architecture. There is an old jira ticket to enable building a “universalAPK” https://jira.iotivity.org/browse/IOT-582 I currently have it assigned to me. There was some work to get it enabled (by a different developer) but unfortunately the work is so old that it essentially needs to be done again from scratch. This is something that we would like to get done but I have not had the development time to enable it. There is also a question about building and verifying such a change. Our build system is already having a hard time keeping up with all the different setups we are throwing at it. Adding in a universalAPK could drastically increase the build time and complexity since we have to build for all of the supported architectures then package them into an .aar file. If you are interested in enabling a universalAPK build I would be happy to help you out. George From: iotivity-dev-boun...@lists.iotivity.org<mailto:iotivity-dev-boun...@lists.iotivity.org> [mailto:iotivity-dev-boun...@lists.iotivity.org] On Behalf Of Rod Biresch Sent: Thursday, September 14, 2017 11:06 AM To: iotivity-dev@lists.iotivity.org<mailto:iotivity-dev@lists.iotivity.org> Subject: [dev] Android multiple target architectures The build instructions (https://wiki.iotivity.org/android_build_instructions) document how to build an Android library for a single target architecture. Is there support to build all supported target architectures (i.e. 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a’) in 1 .aar file? If not, is there a workaround? Thanks, Rod
_______________________________________________ iotivity-dev mailing list iotivity-dev@lists.iotivity.org https://lists.iotivity.org/mailman/listinfo/iotivity-dev