情况如下:
我有一个64位的apk应该是来自/ system / lib的32位共享对象(.so文件).但是apk运行时崩溃并报告:
UnsatisfiedLinkError nativeLibraryDirectories=[/vendor/lib64, /system/lib64
我认为它试图从/ system / lib64搜索位于/ system / lib中的.so文件,然后发生错误.
我如何从/ system / lib而不是/ system / lib64进行搜索?
解决方法:
发生这种情况是因为您捆绑了至少一个64位本机库. Android检测到这一点,并决定在64位的位置寻找其余的.so文件.它找不到它们,因为您只构建32位体系结构.
要验证这是您的问题,请打开构建的apk并查看“lib”目录.其中的每个子目录代表本机二进制体系结构.如果您没有为该体系结构构建所有本机.so文件,则该目录不应该存在.找出原因并停止它.
其中一个例子就是Crashlytics可以安静地捆绑自己.由此产生的崩溃仅出现在64位设备上,因为32位设备从不搜索64位体系结构目录.
您必须从所有第三方中间件中删除未完全支持的体系结构.