-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Android Linker cannot handle lib path suffix below Android M #49
Comments
Could you please add more specific steps to reproduce this. That would be very helpful. |
Suppose our app has a lib named "A.so", and it depends on "B.so" in Android.mk(LOCAL_SHARED_LIBRARIES += B), the version code is "1234", the reproduce steps:
Thank you. |
@alhah sorry for not seeing this earlier. Got lost in notifications storm. Thanks for the reproduction steps. I'd love to get this handled better in ReLinked, but unfortunately we don't have the resources to do this right now. You think you'll be able to open a PR? |
Signed-off-by: xueqiushi <[email protected]>
Signed-off-by: xueqiushi <[email protected]>
Hi @alhah, this issue only occurs for rooted phones? |
@emarc-m It occurs for all phones below Android M, root just for explain the reproduce path. If A.so depends B.so which has been renamed to B.so.version_code, linker can not find it below Android M. |
We meet error like this:
java.lang.UnsatisfiedLinkError
dlopen failed: could not load library "libmegface-new.so" needed by "libMegviiFacepp-0.5.2.so.6453"; caused by library "libmegface-new.so" not found
Android Linker below M use exactly match to handle dependency. In our case, libMegviiFacepp-0.5.2.so depends on libmegface-new.so, and they were renamed to libMegviiFacepp-0.5.2.so.6453 & libmegface-new.so.6453. When linker load libMegviiFacepp-0.5.2.so.6453, it would try to load libmegface-new.so first, and then failed.
We pass "null" for "version" below Android M to avoid this.
The text was updated successfully, but these errors were encountered: