 <p>The behavior you so beautifully demonstrated is by design (or lack of, if you will). You are right in part, the crazy_linker does resolve some of such issues (but not all of them). There is an easy but ugly workaround. Build a dummy <code>libfcn_defined.so</code> which only has <code>T someMethod</code> in its <strong>nm</strong>. Use it to link <code>libfnc_undefined.so</code>, using <code>LD_LIBS</code>. NDK will show a warning, but that's OK. LAoad the real <code>libfcn_defined.so</code> in your Java.</p>