Android Fabric分布式调试版本:java.lang.UnsatisfiedLinkError

时间:2016-11-02 17:38:45

标签: android android-ndk native dynamic-linking

我的Android应用程序中有一些本机代码可以在我的设备上完美运行(Samsung Galaxy S3)。我已经创建了一个构建并签名的调试,将APK发送给我的朋友进行测试。该应用程序在他的设备(Sony Xperia Z3 Compact)上启动,在第一次调用本机组件时,它崩溃了。在Fabric中,我看到以下堆栈跟踪:

Fatal Exception: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__aeabi_memclr" referenced by "/data/app/com.myapp.myapp-1/lib/arm/libmyAppNative.so"...
       at java.lang.Runtime.loadLibrary(Runtime.java:372)
       at java.lang.System.loadLibrary(System.java:1076)
       at com.myapp.system.Native.<clinit>(Native.java:9)
       ...

为什么本机组件无法在Fabric上运行同样的风格(调试),而它在我的设备上运行完美?

1 个答案:

答案 0 :(得分:0)

部分原因是Error loading package (JNI) - cannot locate symbol "__aeabi_memcpy"处的链接问题。

那里的答案说这个问题只发生在SDK版本24上,这在我的情况下是不正确的。 SDK版本25仍然存在问题。

我已经通过恢复到SDK版本23来解决问题。然而,这个问题仍然没有解决,谷歌方面需要修复这个问题它尽快。