Подтвердить что ты не робот

Библиотека "libmaliinstr.so" не найдена

У меня есть приложение для Android, написанное в Scala. Когда я запускаю его, в окне журнала появляется следующее сообщение об ошибке:

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

Что это значит и как его решить?

4b9b3361

Ответ 1

Scala не имеет значения.

Я также встречал эту проблему раньше. Это аппаратная проблема с процессором. Находится в некоторых китайских телефонах. Huawei и xiaomi являются известными брендами, у устройств которых может быть эта проблема.

Загрузка этой ошибки библиотеки возникает, когда приложение не может найти правильную платформу *.so.

От имени libmaliinstr я предполагаю, что он связан с Mali инструментом Wiki. Mali - это низкоуровневый аппаратный драйвер, поддерживающий расширенный OpenGL/GLES, особенно для рендеринга браузера.

Я воспроизвожу его на CPU MT6582 (Hongmi 1S), что означает, что на этом устройстве отсутствует система lib 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, его аппаратная проблема с процессором в некоторых телефонах. Добавление к его списку брендов телефонов, Micromax тоже имеет эту проблему. Спасибо sakiM за указание Irrelevant Scala Problem.

Примечание. Если вы используете фрагмент, вы можете заменить this на getActivity() в приведенном выше коде.