2016-01-06 2 views
4

Мое приложение нуждается в Renderscript, поскольку оно выполняет некоторую обработку изображений, которая занимает несколько секунд в Java. Перед публикацией я тестировал ее на нескольких устройствах, даже некоторые более старые модели (например, Samsung Galaxy Tab 2, API 17), и приложение работало довольно хорошо даже на этих устройствах. Из этого я не видел причины устанавливать минимальный API выше 17. Теперь, спустя несколько недель после публикации в Google Play, я вижу, что приложение вылетает на некоторых устройствах, таких как Galaxy S3 (m0) с API 17 или Galaxy S3 Mini Value Edition (goldenvess3g) с API 18.Список устройств, на которых Renderscript не работает

android.support.v8.renderscript.s: Error loading RS jni library: java.lang.UnsatisfiedLinkError: unknown failure 

Как таковым, что не удивительно, так как я знал о некоторых типах процессоров, которые не поддерживают Renderscript или другие специфические проблемы устройств, которые могут вызвать проблемы. Вопросы:

  1. Есть ли (примерный) способ узнать, какой из устройств Android 6'811 с ​​API> = 17 НЕ поддерживает Renderscript? Например, на основе терминов в скобках (m0, goldenvess3g), которые, возможно, связаны с типами процессоров? Если это так, я могу исключить эти устройства в Google Play.
  2. Если такой возможности нет, вы бы рекомендовали установить минимальный API выше, например. API 19? Звучит наивно, но я не нашел последовательной информации об этом.

Большое спасибо за ваш отзыв.

+0

Если ваш минимальный API равен 17, то почему вы используете библиотеку поддержки RenderScript? – ozbek

+0

ozbek - это очень хороший вопрос! Почему-то я всегда предполагал, что настоятельно рекомендуется использовать библиотеку поддержки, чтобы я больше не изучал ее необходимость ... Но похоже, что из-за этого очень важна часть проблем, связанных с несовместимостью! Какая ирония. Пожалуйста, добавьте свой комментарий в андер, и вы получите очки! Благодарю. – Settembrini

+0

Settembrini - Какую версию BuildTools вы использовали, когда увидите эту ошибку? Была проблема для библиотеки поддержки RenderScript, отправленной на определенные устройства JellyBean, и была исправлена ​​Build-Tools 23.0.3. Кроме того, использование собственного RenderScript в API 17 означает, что вы не можете установить «renderscriptTargetApi» выше 17, иначе ваши скрипты (.rs) не будут работать хорошо. –

ответ

1

Согласно документации android.renderscript, она доступна с уровня API 11. Поскольку ваш минимальный уровень API равен 17, я бы рекомендовал использовать его вместо android.support.v8.renderscript.

API-интерфейсы API поддержки предназначены для использования, если вы настроите таргетинг на устройства с более низкими версиями Android, что, по-видимому, не относится к вам.