If a module is being used by an application and that module has native library files in it (libs/armeabi/*.so), those library files are properly packaged into the app's .apk file only when a full build (i.e.,the first build) is done. Not when incremental builds are done. This leads to the app crashing when it tries to access anything in the module that calls into the native library.
- Download and unzip the timob5428.zip here.
- Import the project into Titanium Studio.
- Build/release to emulator or device.
- When the app loads you should see a label that says "Hello from JNI, My Friend!". That means it has successfully loaded a native library (.so file) that contains a method named stringFromJNI.
- Build/release the app again without making any changes. This time it will crash when it's loading.
Sample stack trace: