Closed rpavlik closed 2 years ago
Prefab doesn't create packages, it only reads them. You need to file this bug against whatever system created the package (looks to be AGP?)
Is the correct value to put in the file "none" then? Wasn't actually made with agp because of other bugs in agp, so more home brewed than that. But I suspect that agp probably does put the stl in the file because I doubt it's introspecting the symbols exported.
If your library does not enforce any STL constraints on the user, yes, use none
.
Describe the bug As recommended by the guidance for middleware authors, we've switched our AAR to being built with the static STL. The library exposes a purely-C API/ABI, the use of C++ is an internal implementation detail. Exported symbols are limited with an exports file so in theory it should be unobservable that the library uses C++. However, now that we have a shared library with static STL, the gradle build (I think in the prefab tool itself) fails with
Library is a shared library with a statically linked STL and cannot be used with any library using the STL
.To Reproduce Steps to reproduce the behavior:
Expected behavior Would expect that it would link and run fine.
I'm told that for projects using it without Gradle (e.g. Unity projects) the contents of the AAR work fine, so it's specific to using prefab/gradle to do the build.
Logs
Environment: Prefab version: As provided in AGP 7.2.2
Host OS: Linux Target platform: Android Target ABI: any Target OS version: SDK 33 Build system: Gradle
Additional context Should we be specifying a different value in those abi.json files? Omitting that key fails, as does providing
null
. Looks like if we specify "none" as a string instead it will link and finish the build, at least.