java - 分配给 Put 参数时 Android 渲染脚本错误

标签 java android c renderscript

我收到错误

Fatal signal 11 (SIGSEGV) at 0x51b71000 (code=1), thread 3696 (sssist.magnitab)

每当我为 out 参数分配值以发送回主应用程序的值时,当我删除分配错误时就会消失,这是我的代码,(在 Android 代码下面)

 void root(const char *in, int *out, uint32_t x, uint32_t y) {\
    int  pixelData[size];
    for (int i = 0; i <size ; i += 16)
        {
            //rsDebug("---------------:","3333");



            int lumOne = in[i];
            lumOne += 128;
            pixelData[lumOne]=pixelData[lumOne]+1;

            int lumTwo = in[i+2];
            lumTwo += 128;
            //pixelData[lumTwo]++;
            pixelData[lumTwo]=pixelData[lumTwo]+1;

        }

        out[10]=23;


}
RenderScript mRS;

       mRS = RenderScript.create(activity);
       ScriptC_mono mScript;
       // Convert to Bitmap

       Allocation alloc = Allocation.createSized(mRS, Element.I8(mRS), array.length, Allocation.USAGE_SCRIPT);
       alloc.copyFrom(array);
       int[] ret = new int[array.length];
       int[] ret2 = new int[array.length];
       Allocation alloc_out =    Allocation.createSized(mRS, Element.I32(mRS), array.length, Allocation.USAGE_SCRIPT);
       alloc_out.copyFrom(ret2);

       mScript = new ScriptC_mono(mRS, activity.getResources(),R.raw.mono);
       mScript.set_size(array.length);
       mScript.forEach_root(alloc, alloc_out);
       alloc_out.copyTo(ret2);

       //byte [] outarray = array;
       // mOutPixelsAllocation.copyTo(outarray);
        mRS.finish();

帮我纠正这个问题。

最佳答案

您应该只写入 out[0],而不是写入 out[10]。输出指针自动前进,并且 root() 在输入/输出分配中的每个单元上运行。每个单独的单元格都使用有效的输入/输出指针对调用此函数,该指针对真正映射到 in[y][x]、out[y][x](或适当的 1D)。

关于java - 分配给 Put 参数时 Android 渲染脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21796752/

相关文章:

java - Android 变量未定义

java - 如何在jsonobject中设置数组

android - 从 Sonatype 下载我的库时出现多个 dex 文件错误

c - 难以理解 void 数组并在函数调用中使用它们

c++ - 如何处理程序版本更新时不断变化的数据结构?

c - 彩票模拟编译问题

java - 如何在不更改代码而仅更改数据库的情况下对应用程序进行功能更改?

java - 使用java对csv文件中的独特货币进行求和

android - 如何将参数从 Activity 传递给 Fragment

android - 计算图像上两点之间的像素