Renderscript NoClassDefFound во время инструментального теста - PullRequest
0 голосов
/ 03 октября 2018

Я пишу Инструментированный тест класса, который использует несколько android.support.v8.renderscript функций.

При нормальной работе на устройстве визуализация не выдает ошибок.Однако, когда в androidTest я получаю следующую ошибку:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v8/renderscript/Allocation;

build.gradle defaultConfig:

 defaultConfig {
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.0"
        renderscriptTargetApi 28
        renderscriptSupportModeEnabled true
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
 }

Как убедиться, renderscript доступно во время тестов?

Проект с открытым исходным кодом, вы можете увидеть функцию, которую я тестирую, blur(), где используется Renderscript: BlurKit .

1 Ответ

0 голосов
/ 15 октября 2018

проблема, с которой я столкнулся при создании объекта RenderScript.

RenderScript rs = RenderScript.create (context);

Ошибка, которую я получил, была такой жеas you

java.lang.NoClassDefFoundError: Ошибка разрешения: Landroid / support / v8 / renderscript / Allocation;

Я решил это с помощью

  1. копирование renderscript-v8.jar из каталога Android SDK (Android \ Sdk \ build-tools \ 28.0.3 \ renderscript \ lib \ renderscript-v8.jar) в libs dir модуля приложения (т. Е. App \ libs. Createкаталог libs, если он не существует)

    Project \

    • app \
      • libs \ renderscript-v8.jar
  2. в app \ build.gradle, добавьте implementation files('libs/renderscript-v8.jar') к зависимостям.

dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') .... implementation files('libs/renderscript-v8.jar') }

Эти не сделалиу меня не работает renderscriptTargetApi 28 renderscriptSupportModeEnabled true

...