AxelNennker / AusweisApp2AAR

Multi-Arch AAR Building of @Governikus AusweisApp2 SDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AusweisApp2AAR

Multi-Arch AAR Building of @Governikus AusweisApp2 SDK

AusweisApp2 SDK does support arm64-v8a only. The AAR generated by this project contains the armeabi-v7a shared libraries as well.

This project uses the artifacts generated by https://github.com/AxelNennker/AusweisApp2/blob/community/.gitlab-ci.yml and generates an AAR that supports armeabi-v7a and arm64-v8a.

Steps

  • create the artifacts
  • copy AusweisApp2-artifacts/workspace/arm64-v8a/build/dist/ to e.g. AusweisApp2AAR
  • create AusweisApp2AAR/armeabi-v7a
  • populate AusweisApp2AAR/armeabi-v7a with the shared libraries. Copy these from AusweisApp2-artifacts/workspace/armeabi-v7a/buildlibs/dist/lib/
$ ls -1R libs
QtAndroid.jar
QtAndroidExtras.jar
QtAndroidNetwork.jar
QtNfc.jar
arm64-v8a
armeabi-v7a

libs/arm64-v8a:
libAusweisApp2_arm64-v8a.so
libQt5AndroidExtras_arm64-v8a.so
libQt5Concurrent_arm64-v8a.so
libQt5Core_arm64-v8a.so
libQt5Gui_arm64-v8a.so
libQt5Network_arm64-v8a.so
libQt5Nfc_arm64-v8a.so
libc++_shared.so
libcrypto_arm64-v8a.so
libplugins_imageformats_qgif_arm64-v8a.so
libplugins_imageformats_qicns_arm64-v8a.so
libplugins_imageformats_qico_arm64-v8a.so
libplugins_imageformats_qjpeg_arm64-v8a.so
libplugins_platforms_qtforandroid_arm64-v8a.so
libssl_arm64-v8a.so

libs/armeabi-v7a:
libAusweisApp2_armeabi-v7a.so
libQt5AndroidExtras_armeabi-v7a.so
libQt5Concurrent_armeabi-v7a.so
libQt5Core_armeabi-v7a.so
libQt5Gui_armeabi-v7a.so
libQt5Network_armeabi-v7a.so
libQt5Nfc_armeabi-v7a.so
libc++_shared.so
libcrypto_armeabi-v7a.so
libplugins_imageformats_qgif_armeabi-v7a.so
libplugins_imageformats_qicns_armeabi-v7a.so
libplugins_imageformats_qico_armeabi-v7a.so
libplugins_imageformats_qjpeg_armeabi-v7a.so
libplugins_platforms_qtforandroid_armeabi-v7a.so
libssl_armeabi-v7a.so

  • mkdir AusweisApp2AAR/qt5AndroidDir and subdirectories res and src
  • cp -r AusweisApp2-artifacts/workspace/armeabi-v7a/buildlibs/dist/src/android/java/res/* to res
  • cp -r AusweisApp2-artifacts/workspace/armeabi-v7a/buildlibs/dist/src/android/java/src/* to src
  • set the Android SDK in local.properties
  • Remove the path to qt5AndroidDir in gradle.properties. Review the values in gradle.properties
$ cat gradle.properties 
android.useAndroidX=true
androidBuildToolsVersion=30.0.3
androidCompileSdkVersion=31
buildDir=build
qt5AndroidDir=qt5AndroidDir
qtMinSdkVersion=21
qtTargetSdkVersion=30

  • remove jcenter and add mavenCentral
  • updated gradle
  • update dependencies
  • ./gradlew clean
  • ./gradlew assembleRelease
    • The aar is not in the build folder build/outputs/aar/AusweisApp2AAR-release.aar
    • The aar contains the shared libraries for both arm64-v7a and armeabi-v7a
unzip -t AusweisApp2AAR-release.aar
... snip
    testing: jni/arm64-v8a/           OK
    testing: jni/arm64-v8a/libAusweisApp2_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5AndroidExtras_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5Concurrent_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5Core_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5Gui_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5Network_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libQt5Nfc_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libc++_shared.so   OK
    testing: jni/arm64-v8a/libcrypto_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libplugins_imageformats_qgif_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libplugins_imageformats_qicns_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libplugins_imageformats_qico_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libplugins_imageformats_qjpeg_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libplugins_platforms_qtforandroid_arm64-v8a.so   OK
    testing: jni/arm64-v8a/libssl_arm64-v8a.so   OK
    testing: jni/armeabi-v7a/         OK
    testing: jni/armeabi-v7a/libAusweisApp2_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5AndroidExtras_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5Concurrent_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5Core_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5Gui_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5Network_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libQt5Nfc_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libc++_shared.so   OK
    testing: jni/armeabi-v7a/libcrypto_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libplugins_imageformats_qgif_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libplugins_imageformats_qicns_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libplugins_imageformats_qico_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libplugins_imageformats_qjpeg_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libplugins_platforms_qtforandroid_armeabi-v7a.so   OK
    testing: jni/armeabi-v7a/libssl_armeabi-v7a.so   OK
... snip

I am going to improve the .gitlab-ci.yml file to do more of these manual steps - later

About

Multi-Arch AAR Building of @Governikus AusweisApp2 SDK

License:Apache License 2.0


Languages

Language:Java 92.8%Language:AIDL 7.2%