我在 Android 市场上有一个应用程序,在它的崩溃报告中我得到 java.lang.UnsatisfiedLinkError 崩溃,每次都是针对不同的 .so 文件。
错误看起来像
java.lang.ExceptionInInitializerError
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load *****: findLibrary returned null
或
java.lang.ExceptionInInitializerError
at java.lang.Thread.run(Thread.java:1019)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: alloc_mem_region[871]: OOPS: 116 cannot map library ********. no vspace available.
或
java.lang.UnsatisfiedLinkError: Couldn't load ******: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:429)
at java.lang.System.loadLibrary(System.java:554)
看起来有些设备找不到某些 .so 文件。崩溃不是针对任何特定的 .so 文件。我的应用程序中有大约 4 个 .so 文件,有时它会因 1 个而崩溃,有时会因另一个而崩溃。
虽然我在几乎所有版本的 Android 上都进行了测试,但我在测试时永远无法重现此问题......
任何指点将不胜感激
谢谢
最佳答案
我自己也遇到过类似的问题——这似乎影响了极少数用户,我无法直接将其与设备类型或操作系统相关联。然而,根据我所做的研究,我发现了关于 Cyanogenmod Google Code page 的讨论。 ;快速总结一下:听起来该 mod 的某些版本并未精确复制 Google 对系统级库所做的某些更改,这意味着某些符号(例如 __android_log_print
)可能会导致错误,包括导致您的库加载失败。
我正在尝试进一步确定这一点,但我想我会分享我所掌握的最新信息。
关于android - 为什么我从 Market 收到 java.lang.UnsatisfiedLinkError 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8516747/