Android: Import static/shared library


can somebody walk me through the import of a static library into an Android project with the Projucer?
I saw the “import static library modules” field in the android exporter but I have no idea how to use that.

I have the library and includes ready in 4 ABIs


So far I do this (I use AWS in this example:

  1. I have the following folder structure:

  2. My in the awscore module contains this:

    LOCAL_PATH := (call my-dir) include (CLEAR_VARS)
    LOCAL_MODULE := awscore


  3. I have added the absolute path of ndk-modules as NDK_MODULE_PATH to my enviroment.

  4. I added the module names to the “Import Shared Library Modules” field of the Android exporter.

I still get the error, that the includes could not be found. The file is there. In my case:

fatal error: ‘aws/core/Aws.h’ file not found

I searched the build.grade and CMakeLists.txt and for the module names I’m trying to include and can’t find any reference to it. Is it possible this has been removed by accident?

Could this please somehow be fixed?
Right now I need to add something along these lines in my CMakelists and build.gradle:


add_library(“aws-cpp-sdk-core” SHARED IMPORTED)
set_target_properties(“aws-cpp-sdk-core” PROPERTIES IMPORTED_LOCATION {CMAKE_SOURCE_DIR}/../../../Dependencies/aws/{ANDROID_ABI}/


target_link_libraries( {BINARY_NAME} {log}
{android} {glesv2}
“aws-cpp-sdk-core” <-- here
“aws-cpp-sdk-sns” <-- here

build.gradle (the aws dir contains subdirs for each ABI)

sourceSets {
main.jniLibs.srcDirs +=

All these changes are overwritten each time I resave my projucer project.


having the same problem …


We have a similar problem here @tom, @ed95, @fabian any solution?

1 Like





The “Import static library modules” and “Import shared library modules” settings were originally on the old “Android Ant” exporter. They have been moved to the new “Android” exporter in commit ec0485388 (February 2017, between version 4.3.1 and 5.0.0), but they are not doing anything anymore.

In the current (5.4.3) code of Projucer, you can see that androidSharedLibraries is declared, initialized, and associated with the “Import Shared Library Modules” field, but its value is never used. The same is true for androidStaticLibraries.

Yeah, it looks like these are just leftovers from the old Android Ant exporter. I’ll remove the settings from the exporter as it’s confusing that they don’t do anything.

If you’re just linking to prebuilt libs, can’t you use the External Libraries to Link and Extra Linker Flags settings to do what you need?

No, this is not working for me. This will link against any library that has the correct name with no distinction between platforms.

1 Like

@Achder @Wah0airo @alexoz

Did you ever solve this issue or do you still need to edit CMakeLists.txt each time? I’m also trying to import a shared lib, and couldn’t find a way to do it appart from editing CMakeLists.txt.

sry can’t say anything because I haven’t tried since then, but I’d suspect the problem still persists :confused:

but we have to do some android work again in the near future … so please keep us updated and we do likewise :wink:



Is there any proper way to add a static lib in the different architectures directly in the Projucer, or do we need to update the CMakeLists file manually?