我的应用需要,麦克风访问录制音频。应用程序还使用一些本机库。该应用程序正常工作,targetSdkVersion设置为小于或等于22.我想在Android Marshmallow上运行我的应用程序。
我在Android M上收到以下错误:
dlopen失败:未找到库“libxyz.so”
以下步骤导致错误:
另一方面,如果我启动应用程序,则授予权限&捕获音频一切正常。问题似乎与撤销/重新授予权限有关(上面的步骤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
由于以上都没有帮助我,我发布了我的查询。任何帮助将受到高度赞赏