Android Marshmallow dlopen失败“libxyz.so”未找到

时间:2016-02-26 01:28:18

标签: android android-permissions android-6.0-marshmallow dlopen

我的应用需要,麦克风访问录制音频。应用程序还使用一些本机库。该应用程序正常工作,targetSdkVersion设置为小于或等于22.我想在Android Marshmallow上运行我的应用程序。
我在Android M上收到以下错误:

  

dlopen失败:未找到库“libxyz.so”

以下步骤导致错误:

  1. 启动应用。应用程序要求麦克风权限。授予许可
  2. 转到设备设置&撤消麦克风权限(应用重启 在Android M上)
  3. 现在重新授予对该应用的麦克风访问权限。
  4. 转到应用。当我现在尝试捕获音频时,我遇到了dlopen错误。
  5. 另一方面,如果我启动应用程序,则授予权限&捕获音频一切正常。问题似乎与撤销/重新授予权限有关(上面的步骤2-3-4)。如果我只做上面的第1步,android就可以加载本机库&一切都无缝地工作。这清楚地证实,包装和包装没有问题。 libs可用。

    我已经读过这个:http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html
    我的本机库没有“文本重定位”(它们是用fPIC标志构建的)。此外,当dlopen()失败时,dlerror()是 NULL ,这不是很有用。我还使用“ eu-findtextrel ”实用程序来确认我的本机库都没有“文字重定位
    我也阅读了这些帖子:Android M crash java.lang.UnsatisfiedLinkError: dlopen failed:
    Unable to dlopen(libsomething.so) Cannot load library: link_image[1995]: failed to link libsomething.so
    https://android.stackexchange.com/questions/92473/dlopen-failed-library-system-lib-libhoudini-so-not-found
    由于以上都没有帮助我,我发布了我的查询。任何帮助将受到高度赞赏

0 个答案:

没有答案