【问题标题】:Library "libmaliinstr.so" not found未找到库“libmaliinstr.so”
【发布时间】:2014-10-24 17:53:19
【问题描述】:

我有一个用 Scala 编写的 Android 应用程序。当我启动它时,日志窗口中会出现以下错误消息:

08-31 13:11:10.781    5398-5398/my.app.app123 E/linker﹕ load_library(linker.cpp:759): library "libmaliinstr.so" not found
08-31 13:11:10.784    5398-5398/my.app.app123 E/﹕ appName=my.app.app123, acAppName=com.android.cts.openglperf
08-31 13:11:10.784    5398-5398/my.app.app123 E/﹕ 0
08-31 13:11:10.784    5398-5398/my.app.app123 E/﹕ appName=my.app.app123, acAppName=com.android.browser
08-31 13:11:10.784    5398-5398/my.app.app123 E/﹕ 0

这是什么意思以及如何解决?

【问题讨论】:

  • 我也出现了同样的情况,请问有没有找到解决办法或者这个错误的原因?
  • 中文设备也一样。 Android 原生应用。
  • @daVe,我也是中国人
  • 有同样的问题,也是中文设备,有人找到解决办法了吗?
  • 谁能找到解决这个问题的方法。如果是,请分享解决方案。

标签: android macos scala proguard


【解决方案1】:

Scala 无关紧要。

我之前也遇到过这个问题。这是CPU的硬件问题。在一些中国手机中发现。华为和小米是知名品牌,哪些设备可能存在此问题。

当应用程序找不到正确的平台*.so时会发生加载此库错误。

根据名称libmaliinstr,我假设它与Mali 仪器Wiki 有关。 Mali 是一个低级硬件驱动程序,支持增强的 OpenGL/GLES,尤其适用于浏览器渲染。

我在 CPU MT6582 (Hongmi 1S) 上重现它,这意味着该设备缺少系统库libmaliinstr.so。所以应用不能像往常一样使用openglperf

目前的解决方案:

跳过此设备并忽略错误。 (我们可能无权修改系统库)

加法:

您肯定可以在这些设备中禁用硬件加速。

【讨论】:

    【解决方案2】:

    这段代码帮我解决了问题

    List<ResolveInfo> resInfoList = this.getPackageManager().queryIntentActivities(yourIntent, PackageManager.MATCH_DEFAULT_ONLY);
    for (ResolveInfo resolveInfo : resInfoList) {
        String packageName = resolveInfo.activityInfo.packageName;
        this.grantUriPermission(packageName, yourURI, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
    }
    

    正如sakiM 所说,这是某些手机中 CPU 的硬件问题。在他的手机品牌列表中,Micromax 也有这个问题。感谢sakiM 指出Irrelevant Scala Problem

    注意:如果您使用的是片段,您可以将上述代码中的this 替换为getActivity()

    【讨论】:

    • 感谢Pang 的编辑。但我不确定你编辑了什么。请指点一下好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2016-11-13
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多