使用build-tools 18.1.1更新到Android Studio 4.3后无法编译RenderScript

时间:2014-02-05 16:12:05

标签: android renderscript

我使用旧版本的Android Studio已经在RenderScript项目上工作了很长时间。我的目标是使用SDK版本18。

使用新的 build-tools 19 + 编译项目时出现运行时问题(当我修改root()'uchar * v_out'参数时崩溃),所以我决定回到构建工具18.1.1。但在使用此版本进行编译时,我收到错误:

  

'conversion.rs错误:计算内核根目录(),目标是SDK级别11-13   可能不会跳过参数FAILURE:构建失败并出现异常。

     

任务执行失败:test:compileDebugRenderscript。   com.android.ide.common.internal.LoggedErrorException:无法运行   命令:C:\ Program   Files \ android-studio \ sdk \ build-tools \ 18.1.1 \ llvm-rs-cc.exe -O 3 -I   C:\ PROGRAM   Files \ android-studio \ sdk \ build-tools \ 18.1.1 \ renderscript \ include \ -I   C:\ PROGRAM   FILES \ Android的工作室\ SDK \构建工具\ 18.1.1 \的renderScript \铛,包括\   ...

也许这是我的内核函数签名的问题?即使下面有一个简单的.rs文件,也无法编译。我曾经能够编译并运行这个很好,我很确定它当时正在使用构建工具18 ..

#pragma version(1)
#pragma rs java_package_name(com.app.test);

void root(const uchar4 *in, uchar4 *out, uint32_t x, uint32_t y) {


}

非常感谢任何帮助。

更新 这变得很奇怪...如果我使用gradle版本1.10和build-tools 19.0.1,代码编译但如果我尝试修改'uchar4 * out',则会给我以下错误

  

:致命信号11(SIGSEV)Aat 0xdeadbaad(code = 1)'

1 个答案:

答案 0 :(得分:0)

您真的针对的是API级别11-13还是混淆的一部分?如果您希望定位这些级别,则需要更新根签名以包含“const void * usrData,size_t usrDataLen”。即使您不使用它们也必须这样做,因为较旧的RS版本的RS不允许您跳过这些参数。更现代的RS版本允许您跳过您不想使用的参数。