当我尝试更新我的Android应用程序以使用4.2.1,Nexus 7时,我遇到了一个可疑问题。我正在使用我自己的.so库,在我更新之前,包含在Android版本4.1上工作正常。现在我遇到了各种各样的问题。
我在运行3.2.1的Android设备和运行4.2.1的Nexus 7上进行部署时比较了日志。图书馆被放置在两个不同的位置,这可能会导致我的问题。
ANDROID 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
ANDROID 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
为什么突然出现在app-lib目录中?我该如何强行退回?这记录在哪里?
...谢谢
答案 0 :(得分:6)
从Android 4.2开始,在android框架中添加了多用户功能。
并且更改了几个目录位置,但未更改API,例如Context.get ??? Dir()或Context.get ??? Path()。 (只是返回值已更改)
此外,android平台为遗产制作了符号链接。
未记录这些更改。
答案 1 :(得分:0)
我将回答我自己的问题,因为我们最终以不同的方式实现我们的库。
问题在于我们正在将访问证书和更多内容复制到库所在的目录中。这种方法适用于较旧的Android版本,它位于data / data / package /中。但在较新的Android版本(data / app-lib / package /)上,该位置是只读的。
我们所做的是移动位置,简单。感谢您的投入。