3

当我尝试更新我的 Android 应用程序以在 4.2.1、Nexus 7 上运行时遇到了一个可疑问题。我正在使用我自己的 .so 库,在我更新之前,该库在 Android 版本 4.1 上运行良好。现在我遇到了各种各样的问题。

我在运行 3.2.1 的 Android 设备和运行 4.2.1 的 Nexus 7 上部署时比较了日志。图书馆被放置在两个不同的位置,这可能会导致我的问题。

安卓 3.2.1:

Trying to load lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218
Added shared lib /data/data/com.my.app/lib/lib_my_app_jni.so 0x407e8218

安卓 4.2.1 (Nexus 7):

Trying to load lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8
Added shared lib /data/app-lib/com.my.app-1/lib_my_app_api_jni.so 0x4257b6c8

为什么它突然被放在 mysteries app-lib 目录中?我如何强制它回来?这在哪里记录?

谢谢...

4

2 回答 2

6

从 Android 4.2 开始,Android 框架中添加了多用户功能。

并且有几个目录位置发生了变化,但 API 没有变化,例如 Context.get???Dir() 或 Context.get???Path()。(只是返回值改变了)

android平台也为旧版制作符号链接。

这些更改未记录在案。

于 2013-02-12T16:42:21.237 回答
0

我将回答我自己的问题,因为我们最终以不同于最初预期的方式实现了我们的库。

问题是我们将访问证书等复制到库所在的目录中。这种方法在旧的 Android 版本上运行良好,该版本位于 data/data/package/ 中。但在较新的 Android 版本(data/app-lib/package/)上,该位置是只读的。

我们所做的就是移动位置,很简单。感谢您的输入。

于 2013-02-17T15:12:48.987 回答