安卓。系统应用的本地库

3

我使用本地库开发应用程序。通常情况下它可以正常工作,但是当我将它移动到 /system/app 后重新加载后,我发现缺少了 /data/app-lib/com.my.app 文件夹中的 *.so 文件。然而,在 /data/data/com.my.app 中存在一个名为 lib 的符号链接。

设备为 Nexus 4。

请帮我解决这个问题。任何帮助都将不胜感激。


你为什么要首先移动呢?在导出.apk之前,库应该放置在Android项目中的/Project/libs中,在这种情况下,库会自动复制到适当的位置。 - Antoine Marques
2
请再次阅读我的问题。应用程序在常见情况下正常工作。但是作为系统应用程序时无法正常工作。 - NikedLab
你在设备上有/system文件夹的写入权限吗?(这可能是个愚蠢的问题)。在具有完全权限的rooted设备上,这里可以正常工作。 - RossC
虽然不足以称之为重复,但这可能会有趣:https://dev59.com/BXrZa4cB1Zd3GeqP8OIz - Chris Stratton
1个回答

1

我会很惊讶如果楼主已经寻找答案长达五年,我不认为那时候已经有这个修复方法,但是对于今天在这里搜索的其他人:

由于某种原因,Android不会从/system/priv-app中的应用程序提取本机库。它只是将/data/data/app/lib链接到/system/priv-app/app/lib。这意味着您还需要将所有库复制到/system/priv-app/app/lib中。如果您在Windows上构建,请确保在复制后也将库的chmod设置为0755。


你知道在Oreo上,如果将应用程序安装为系统应用程序(/system/priv-app),extractNativeLibs="false"是否不起作用?我曾经认为,如果将其设置为false,就不会遇到这个线程的问题,但是似乎我仍然收到了UnsatisfiedLinkErrors。 - Edw590

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接