2

重现问题的步骤: 在使用本机 (C++) 库的 XPeria Z(型号 C6602 或 C6603)上从 Play 商店安装(付费)应用程序。该应用程序在启动时不会找到/加载本机库。向客户发送与上传到 Play 商店完全相同的 apk 时,没有问题,一切正常。

这个错误出现在我的两个应用程序(Audio Evolution Mobile 和 USB Audio Recorder PRO)上,错误报告似乎只来自运行 Android 4.2.2 的 XPeria Z 用户。

我已将这两个应用程序的 apk 发送给购买了这些应用程序的客户,安装后它们运行良好。使用其他设备的其他人不会发生此问题。

4

1 回答 1

0

我不确定这是否与您的问题完全相同,但我们在 xperia z 上未加载本机库时遇到了类似的问题。问题是由于付费应用程序的前向锁定导致 .so 文件位于不同的文件夹中:

/mnt/asec/package_name-1/lib/libmy.so

代替:

/data/data/package_name/lib/libmy.so

因此,如果您加载本机库,例如:

dlopen(lib_path, RTLD_LAZY);

使用第二条路径,然后在 XPeria Z 上失败。您还必须尝试这第一条路径。

要在本地重现此问题,请使用:

adb install -l my.apk

实际上从 java 代码加载本机库工作正常,唯一的问题是在本机代码中加载库。我还想知道这条路径是否可以在代码中硬编码:package_name-1,看起来有一天它可能是 package_name-2 :)

于 2013-07-25T14:54:34.057 回答