【发布时间】:2020-07-30 22:00:55
【问题描述】:
我正在尝试听从 https://issuetracker.google.com/issues/128554619#comment4 的建议(尚未在 Android 10 上运行,但希望我的代码也能在那里工作):
虽然 exec() 不再适用于应用程序主目录中的文件,但它继续支持只读 /data/app 目录中的文件。特别是,应该可以将二进制文件打包到应用程序的本地 libs 目录中并启用 android:extractNativeLibs=true,然后在 /data/app 工件上调用 exec()。 wrap.sh 功能也采用了类似的方法,记录在 https://developer.android.com/ndk/guides/wrap-script#packaging_wrapsh 中。
正如这个答案所建议的那样:https://stackoverflow.com/a/58748468/9204
但是,在我的情况下,本地库被提取到的目录不是
File(filesDir.parentFile!!, "lib")
就像那个答案一样,但是
File(File(packageCodePath).parentFile!!, "lib/arm64")
这显然是 hacky(尤其是硬编码 arm64),并且可能取决于特定的 Android 版本和/或设备。
是否有文档化的方法来查找本机 libs 目录?
【问题讨论】:
标签: android