At build time, RenderScript compiles your .rs
files to bytecode (.bc
) in PROJECT/res/raw/
, which is rolled into your apk
. At runtime, the bytecode is compiled to executable binary by libRSDriverArm.so
.
Sometimes Eclipse forgets to delete/update these bytecode files. In your case, it still had a recipe to build PROJECT/res/raw/RSAttempt.bc
which depended on RSAttempt.rs
. It was throwing that error because it couldn't find the dependency because you deleted it. Rebooting and opening Eclipse probably triggered a project clean, which occasionally (but not always D:) mops up those bytecode files.
In my case Eclipse just stopped compiling new bytecode files. This resulted in segfaults @ 0xdeadbaad
, Calling invoke on bad script
and other errors that were useless/nobody has ever heard of, because I was trying to call functions from the (properly regenerated) java reflection classes that were not in the older version of the bytecode. Build time: silence.
Now I use a shell script to periodically delete *.bc
throughout my workspace.