title: Why isn't libgnustl_shared.so being copied from my APK?
body: <p>I have an android project with a <code>libs</code> folder structure like this:</p>
  
  <pre><code>/libs
    /armeabi
      libfoo.so
      libbar.so
      libmystuff.so
      libgnustl_shared.so
    /armeabi-v7a
      libfoo.so
      libbar.so
  </code></pre>
  
  <p><code>foo</code> and <code>bar</code> are third party libraries, <code>mystuff</code> is my own library from a separate android JNI project which requires <code>gnustl_shared</code>, which is from the same JNI project.</p>
  
  <p>When I build my project in Eclipse, I can view the contents of the generated APK using <code>unzip -l</code>, and it indeed shows that all of these library files have been included.</p>
  
  <p>However, after installing the APK, the <code>/data/data/com.myproject/lib</code> folder contains no <code>libgnustl_shared.so</code>, even though the other libraries are present.</p>
  
  <p>This inevitably leads to the following error:</p>
  
  <pre><code>UnsatisfiedLinkError: Couldn't load gnustl_shared: findLibrary returned null
  </code></pre>
  
  <p>As a sanity check, I ran <code>adb push ./libs/armeabi/libgnustl_shared.so /data/data/com.myproject/lib</code> and sure enough, the application starts as expected.</p>
  
  <p>I don't see anything in the build log or Eclipse console that suggests there were any issues building or installing the app.</p>
  
  <ul>
  <li>What could be preventing <code>libgnustl_shared.so</code> from being installed with my application?</li>
  <li>Where can I go to learn about what happens when an APK is installed?</li>
  </ul>
  
  <hr>
  
  <p>Please let me know in a comment if there's any specific information I can provide that might help.</p>