Search code examples
androidjava-native-interfacenativeaar

How do I package .so files into my .aar archive?


I was wondering if it's possible to package my native .so files into my .aar file? If so, where would the .so files go and are there any references that I can read in regards to this?


Solution

  • If you put it manually, then it should be placed underneath

    jni/<platform>/libexample.so
    

    where platform is a target CPU platform like "armeabi", "x86" etc. Typically you will have so-files for multiple platforms there. If you build from source code using Gradle you could simply put your native source code to

    src/main/jni/
    

    and build plugin will do the rest. As the resulting so-files will be built automatically and placed where they belong to.

    Regarding the references, I've seen this been mentioned somewhere on the site dedicated to Android build plugin for Gradle. Since then I wasn't able to find this page again. But you can check out plugin's source code for more details.