【问题标题】:Android Fabric distributed debug build: java.lang.UnsatisfiedLinkErrorAndroid Fabric 分布式调试构建:java.lang.UnsatisfiedLinkError
【发布时间】: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


【解决方案1】:

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

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

我通过恢复到 SDK 版本 23解决了这个问题。但是,这个问题仍然没有解决,谷歌方面的问题是尽快解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多