I have ported and created several low-level C-libraries to Android for my use in my application. I cross-compiled them using the NDK, and then link to them using System.loadLib
If your application is truly crashing in native code, I highly recommend the following:
At any rate, you should be able to fully debug native code and catch problems via ndk-gdb. You can find specific documentation on the ndk's version of gdb in your local installation of the ndk (for example, on my machine it's here):
android-ndk-r6/documentation.html
Finally, here's a basic tutorial on gdb:
gdb tutorial
Hope this helps!