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