我的安卓应用程序中有一些本机代码,在我的设备上运行得很好(三星Galaxy S3)。我创建了一个调试程序并对其进行了签名,并将APK发送给我的朋友进行测试。这个应用程序是在他的设备(索尼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上却是一样的(调试)?
发布于 2016-11-28 11:48:21
这在一定程度上是由于memcpy"的相关问题。
答案是,这个问题只发生在SDK 24上,这在我的例子中是不正确的。这个问题在SDK版本25中仍然存在。
我已经通过返回到SDK版本23来解决这个问题。然而,这个问题仍然没有解决,这是谷歌方面的一个问题,以尽快解决它。
https://stackoverflow.com/questions/40386319
复制相似问题