我正在编写一个使用多个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。
答案 0 :(得分:0)
我遇到的问题是在创建RenderScript对象期间。
RenderScript rs = RenderScript.create(context);
我收到的错误与您相同
java.lang.NoClassDefFoundError:无法解决以下问题:Landroid / support / v8 / renderscript / Allocation;
我通过以下方式解决了此问题
从Android SDK目录(Android \ Sdk \ build-tools \ 28.0.3 \ renderscript \ lib \ renderscript-v8.jar)复制renderscript-v8.jar
到应用程序模块libs目录(即:app \ libs 。创建libs目录(如果不存在)
项目\
在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