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 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?
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.
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?
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.
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?
I’ve found a way to import shared libraries, I’m not sure if the same is with static ones. The libraries are mosquitto and its two dependencies: OpenSSL and crypto. All three are mentioned in the External Libraries to Link section, then for both release types the Header Search Paths point to the include directory of mosquitto, in the Extra Library Search Paths put paths to all the pre-compiled libraries divided into separate architectures. ${ANDROID_ABI} is a variable that hold the currently compiled architecture and should be used there. In my case the third party directory is called “3rdparty” and containes all the precompiled resources.
The last thing is to slightly modify the output CMakeLists.txt file, as it puts strange square brackets over the variables related to the added libraries, remove the brackets. What’s funny is that cmake compiles the app without errors when the square brackets are present, but when running the app the libmosquitto.so is missing from it. Only when the brackets are removed the library is found by the app.
No pictures as I’m a new user to the forum and can only add one embedded element per comment, text is fine, right?
Android: External Libraries to Link
mosquitto
ssl
crypto
Android:Debug and Release: Header Search Paths
../../../3rdparty/mosquitto/include
Android:Debug and Release: External Library Search Paths
@t0m could this behavior of adding the square brackets be removed? I’m running ProJucer 7.0.8, not that old, so I suppose the latest version still battles the same fight