Библиотека "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
Что это значит и как его решить?
Ответы
Ответ 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()
в приведенном выше коде.