【发布时间】:2016-11-02 17:38:45
【问题描述】:
我的 Android 应用中有一些本机代码可以在我的设备(三星 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 上以相同的风格(调试)在他的设备上运行,而它却在我的设备上完美运行?
【问题讨论】:
-
这可能和这个问题类似stackoverflow.com/questions/39541599/…
-
@Bobbake4 我看过了。这实际上是相同的错误,但答案表明它会随着更新和 SDK 24 消失,但我的版本比他们的 Android Studio 和 SDK 还要高,但我仍然有问题。
标签: android android-ndk native dynamic-linking