Renderscript抛出断言异常" rsAssert失败:!mElements.size()"

时间:2014-01-28 19:44:33

标签: android image-processing renderscript

我正在尝试使用setGreyscale在图像上设置灰色效果。
但是,它会引发以下异常:

  

01-29 17:10:51.360:E / RenderScript_jni(27312):无GC方法
  01-29 17:10:51.360:D / dalvikvm(27312):尝试加载lib /data/data/com.xxx.android/lib/libRSSupport.so 0x41f636a0
  01-29 17:10:51.384:D / dalvikvm(27312):添加了共享库/data/data/com.xxx.android/lib/libRSSupport.so 0x41f636a0
  01-29 17:10:51.384:D / dalvikvm(27312):在/data/data/com.xxx.android/lib/libRSSupport.so 0x41f636a0中找不到JNI_OnLoad,跳过初始化
  01-29 17:10:51.391:D / dalvikvm(27312):尝试加载lib /data/data/com.xxx.android/lib/librsjni.so 0x41f636a0
  01-29 17:10:51.391:D / dalvikvm(27312):添加了共享库/data/data/com.xxx.android/lib/librsjni.so 0x41f636a0
  01-28 16:48:38.340:E / RenderScript(19242):rsAssert失败:!mElements.size(),在frameworks / rs / rsElement.cpp中369

以下是代码:

import android.support.v8.renderscript.*;

private synchronized void setGreyScale(Bitmap image){
    Allocation input;
    Allocation output;
    RenderScript rs = RenderScript.create(mContext);
    ScriptIntrinsicColorMatrix scriptColor = ScriptIntrinsicColorMatrix.create(rs, Element.U8_4(rs));
    input = Allocation.createFromBitmap(rs, image, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
    output = Allocation.createTyped(rs, input.getType());
    scriptColor.setGreyscale();
    scriptColor.forEach(input, output);
    output.copyTo(image);                         
    rs.destroy();
}

1 个答案:

答案 0 :(得分:0)

sdk.buildtools设置为版本18.1.0后,它有效 以前,版本为19.0.0

这是我当前的project.properties

  

目标=机器人-19
  renderscript.target = 18
  renderscript.support.mode =真
  sdk.buildtools = 18.1.0

断言异常仍然存在,因此它与实际失败无关。